1/****************************************************************************
2**
3** Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB)
4** Copyright (C) 2016 The Qt Company Ltd.
5** Contact: https://www.qt.io/licensing/
6**
7** This file is part of the QtGui module of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial License Usage
11** Licensees holding valid commercial Qt licenses may use this file in
12** accordance with the commercial license agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and The Qt Company. For licensing terms
15** and conditions see https://www.qt.io/terms-conditions. For further
16** information use the contact form at https://www.qt.io/contact-us.
17**
18** GNU Lesser General Public License Usage
19** Alternatively, this file may be used under the terms of the GNU Lesser
20** General Public License version 3 as published by the Free Software
21** Foundation and appearing in the file LICENSE.LGPL3 included in the
22** packaging of this file. Please review the following information to
23** ensure the GNU Lesser General Public License version 3 requirements
24** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
25**
26** GNU General Public License Usage
27** Alternatively, this file may be used under the terms of the GNU
28** General Public License version 2.0 or (at your option) the GNU General
29** Public license version 3 or any later version approved by the KDE Free
30** Qt Foundation. The licenses are as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
32** included in the packaging of this file. Please review the following
33** information to ensure the GNU General Public License requirements will
34** be met: https://www.gnu.org/licenses/gpl-2.0.html and
35** https://www.gnu.org/licenses/gpl-3.0.html.
36**
37** $QT_END_LICENSE$
38**
39**
40** This file was generated by glgen version 0.1
41** Command line was: glgen
42**
43** glgen is Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
44**
45** This is an auto-generated file.
46** Do not edit! All changes made to it will be lost.
47**
48****************************************************************************/
49
50#ifndef QOPENGLVERSIONFUNCTIONS_4_5_COMPATIBILITY_H
51#define QOPENGLVERSIONFUNCTIONS_4_5_COMPATIBILITY_H
52
53#include <QtGui/qtguiglobal.h>
54
55#if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_2)
56
57#include <QtGui/QOpenGLVersionFunctions>
58#include <QtGui/qopenglcontext.h>
59
60QT_BEGIN_NAMESPACE
61
62class Q_GUI_EXPORT QOpenGLFunctions_4_5_Compatibility : public QAbstractOpenGLFunctions
63{
64public:
65 QOpenGLFunctions_4_5_Compatibility();
66 ~QOpenGLFunctions_4_5_Compatibility();
67
68 bool initializeOpenGLFunctions() override;
69
70 // OpenGL 1.0 core functions
71 void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
72 void glDepthRange(GLdouble nearVal, GLdouble farVal);
73 GLboolean glIsEnabled(GLenum cap);
74 void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
75 void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
76 void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params);
77 void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
78 void glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
79 const GLubyte * glGetString(GLenum name);
80 void glGetIntegerv(GLenum pname, GLint *data);
81 void glGetFloatv(GLenum pname, GLfloat *data);
82 GLenum glGetError();
83 void glGetDoublev(GLenum pname, GLdouble *data);
84 void glGetBooleanv(GLenum pname, GLboolean *data);
85 void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
86 void glReadBuffer(GLenum src);
87 void glPixelStorei(GLenum pname, GLint param);
88 void glPixelStoref(GLenum pname, GLfloat param);
89 void glDepthFunc(GLenum func);
90 void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
91 void glStencilFunc(GLenum func, GLint ref, GLuint mask);
92 void glLogicOp(GLenum opcode);
93 void glBlendFunc(GLenum sfactor, GLenum dfactor);
94 void glFlush();
95 void glFinish();
96 void glEnable(GLenum cap);
97 void glDisable(GLenum cap);
98 void glDepthMask(GLboolean flag);
99 void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
100 void glStencilMask(GLuint mask);
101 void glClearDepth(GLdouble depth);
102 void glClearStencil(GLint s);
103 void glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
104 void glClear(GLbitfield mask);
105 void glDrawBuffer(GLenum buf);
106 void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
107 void glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
108 void glTexParameteriv(GLenum target, GLenum pname, const GLint *params);
109 void glTexParameteri(GLenum target, GLenum pname, GLint param);
110 void glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params);
111 void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
112 void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
113 void glPolygonMode(GLenum face, GLenum mode);
114 void glPointSize(GLfloat size);
115 void glLineWidth(GLfloat width);
116 void glHint(GLenum target, GLenum mode);
117 void glFrontFace(GLenum mode);
118 void glCullFace(GLenum mode);
119
120 // OpenGL 1.1 core functions
121 GLboolean glIsTexture(GLuint texture);
122 void glGenTextures(GLsizei n, GLuint *textures);
123 void glDeleteTextures(GLsizei n, const GLuint *textures);
124 void glBindTexture(GLenum target, GLuint texture);
125 void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
126 void glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
127 void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
128 void glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
129 void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
130 void glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
131 void glPolygonOffset(GLfloat factor, GLfloat units);
132 void glDrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices);
133 void glDrawArrays(GLenum mode, GLint first, GLsizei count);
134
135 // OpenGL 1.2 core functions
136 void glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
137 void glBlendEquation(GLenum mode);
138 void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
139 void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
140 void glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
141 void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
142
143 // OpenGL 1.3 core functions
144 void glGetCompressedTexImage(GLenum target, GLint level, void *img);
145 void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
146 void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
147 void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
148 void glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
149 void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
150 void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
151 void glSampleCoverage(GLfloat value, GLboolean invert);
152 void glActiveTexture(GLenum texture);
153
154 // OpenGL 1.4 core functions
155 void glPointParameteriv(GLenum pname, const GLint *params);
156 void glPointParameteri(GLenum pname, GLint param);
157 void glPointParameterfv(GLenum pname, const GLfloat *params);
158 void glPointParameterf(GLenum pname, GLfloat param);
159 void glMultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei drawcount);
160 void glMultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
161 void glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
162
163 // OpenGL 1.5 core functions
164 void glGetBufferPointerv(GLenum target, GLenum pname, void * *params);
165 void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params);
166 GLboolean glUnmapBuffer(GLenum target);
167 void * glMapBuffer(GLenum target, GLenum access);
168 void glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, void *data);
169 void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
170 void glBufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage);
171 GLboolean glIsBuffer(GLuint buffer);
172 void glGenBuffers(GLsizei n, GLuint *buffers);
173 void glDeleteBuffers(GLsizei n, const GLuint *buffers);
174 void glBindBuffer(GLenum target, GLuint buffer);
175 void glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
176 void glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params);
177 void glGetQueryiv(GLenum target, GLenum pname, GLint *params);
178 void glEndQuery(GLenum target);
179 void glBeginQuery(GLenum target, GLuint id);
180 GLboolean glIsQuery(GLuint id);
181 void glDeleteQueries(GLsizei n, const GLuint *ids);
182 void glGenQueries(GLsizei n, GLuint *ids);
183
184 // OpenGL 2.0 core functions
185 void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
186 void glVertexAttrib4usv(GLuint index, const GLushort *v);
187 void glVertexAttrib4uiv(GLuint index, const GLuint *v);
188 void glVertexAttrib4ubv(GLuint index, const GLubyte *v);
189 void glVertexAttrib4sv(GLuint index, const GLshort *v);
190 void glVertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
191 void glVertexAttrib4iv(GLuint index, const GLint *v);
192 void glVertexAttrib4fv(GLuint index, const GLfloat *v);
193 void glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
194 void glVertexAttrib4dv(GLuint index, const GLdouble *v);
195 void glVertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
196 void glVertexAttrib4bv(GLuint index, const GLbyte *v);
197 void glVertexAttrib4Nusv(GLuint index, const GLushort *v);
198 void glVertexAttrib4Nuiv(GLuint index, const GLuint *v);
199 void glVertexAttrib4Nubv(GLuint index, const GLubyte *v);
200 void glVertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
201 void glVertexAttrib4Nsv(GLuint index, const GLshort *v);
202 void glVertexAttrib4Niv(GLuint index, const GLint *v);
203 void glVertexAttrib4Nbv(GLuint index, const GLbyte *v);
204 void glVertexAttrib3sv(GLuint index, const GLshort *v);
205 void glVertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z);
206 void glVertexAttrib3fv(GLuint index, const GLfloat *v);
207 void glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z);
208 void glVertexAttrib3dv(GLuint index, const GLdouble *v);
209 void glVertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
210 void glVertexAttrib2sv(GLuint index, const GLshort *v);
211 void glVertexAttrib2s(GLuint index, GLshort x, GLshort y);
212 void glVertexAttrib2fv(GLuint index, const GLfloat *v);
213 void glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y);
214 void glVertexAttrib2dv(GLuint index, const GLdouble *v);
215 void glVertexAttrib2d(GLuint index, GLdouble x, GLdouble y);
216 void glVertexAttrib1sv(GLuint index, const GLshort *v);
217 void glVertexAttrib1s(GLuint index, GLshort x);
218 void glVertexAttrib1fv(GLuint index, const GLfloat *v);
219 void glVertexAttrib1f(GLuint index, GLfloat x);
220 void glVertexAttrib1dv(GLuint index, const GLdouble *v);
221 void glVertexAttrib1d(GLuint index, GLdouble x);
222 void glValidateProgram(GLuint program);
223 void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
224 void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
225 void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
226 void glUniform4iv(GLint location, GLsizei count, const GLint *value);
227 void glUniform3iv(GLint location, GLsizei count, const GLint *value);
228 void glUniform2iv(GLint location, GLsizei count, const GLint *value);
229 void glUniform1iv(GLint location, GLsizei count, const GLint *value);
230 void glUniform4fv(GLint location, GLsizei count, const GLfloat *value);
231 void glUniform3fv(GLint location, GLsizei count, const GLfloat *value);
232 void glUniform2fv(GLint location, GLsizei count, const GLfloat *value);
233 void glUniform1fv(GLint location, GLsizei count, const GLfloat *value);
234 void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
235 void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2);
236 void glUniform2i(GLint location, GLint v0, GLint v1);
237 void glUniform1i(GLint location, GLint v0);
238 void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
239 void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
240 void glUniform2f(GLint location, GLfloat v0, GLfloat v1);
241 void glUniform1f(GLint location, GLfloat v0);
242 void glUseProgram(GLuint program);
243 void glShaderSource(GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length);
244 void glLinkProgram(GLuint program);
245 GLboolean glIsShader(GLuint shader);
246 GLboolean glIsProgram(GLuint program);
247 void glGetVertexAttribPointerv(GLuint index, GLenum pname, void * *pointer);
248 void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params);
249 void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params);
250 void glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params);
251 void glGetUniformiv(GLuint program, GLint location, GLint *params);
252 void glGetUniformfv(GLuint program, GLint location, GLfloat *params);
253 GLint glGetUniformLocation(GLuint program, const GLchar *name);
254 void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
255 void glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
256 void glGetShaderiv(GLuint shader, GLenum pname, GLint *params);
257 void glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
258 void glGetProgramiv(GLuint program, GLenum pname, GLint *params);
259 GLint glGetAttribLocation(GLuint program, const GLchar *name);
260 void glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
261 void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
262 void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
263 void glEnableVertexAttribArray(GLuint index);
264 void glDisableVertexAttribArray(GLuint index);
265 void glDetachShader(GLuint program, GLuint shader);
266 void glDeleteShader(GLuint shader);
267 void glDeleteProgram(GLuint program);
268 GLuint glCreateShader(GLenum type);
269 GLuint glCreateProgram();
270 void glCompileShader(GLuint shader);
271 void glBindAttribLocation(GLuint program, GLuint index, const GLchar *name);
272 void glAttachShader(GLuint program, GLuint shader);
273 void glStencilMaskSeparate(GLenum face, GLuint mask);
274 void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
275 void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
276 void glDrawBuffers(GLsizei n, const GLenum *bufs);
277 void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
278
279 // OpenGL 2.1 core functions
280 void glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
281 void glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
282 void glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
283 void glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
284 void glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
285 void glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
286
287 // OpenGL 3.0 core functions
288 GLboolean glIsVertexArray(GLuint array);
289 void glGenVertexArrays(GLsizei n, GLuint *arrays);
290 void glDeleteVertexArrays(GLsizei n, const GLuint *arrays);
291 void glBindVertexArray(GLuint array);
292 void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
293 void * glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
294 void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
295 void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
296 void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
297 void glGenerateMipmap(GLenum target);
298 void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params);
299 void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
300 void glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
301 void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
302 void glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
303 GLenum glCheckFramebufferStatus(GLenum target);
304 void glGenFramebuffers(GLsizei n, GLuint *framebuffers);
305 void glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers);
306 void glBindFramebuffer(GLenum target, GLuint framebuffer);
307 GLboolean glIsFramebuffer(GLuint framebuffer);
308 void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params);
309 void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
310 void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers);
311 void glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers);
312 void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
313 GLboolean glIsRenderbuffer(GLuint renderbuffer);
314 const GLubyte * glGetStringi(GLenum name, GLuint index);
315 void glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
316 void glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value);
317 void glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value);
318 void glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value);
319 void glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params);
320 void glGetTexParameterIiv(GLenum target, GLenum pname, GLint *params);
321 void glTexParameterIuiv(GLenum target, GLenum pname, const GLuint *params);
322 void glTexParameterIiv(GLenum target, GLenum pname, const GLint *params);
323 void glUniform4uiv(GLint location, GLsizei count, const GLuint *value);
324 void glUniform3uiv(GLint location, GLsizei count, const GLuint *value);
325 void glUniform2uiv(GLint location, GLsizei count, const GLuint *value);
326 void glUniform1uiv(GLint location, GLsizei count, const GLuint *value);
327 void glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
328 void glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
329 void glUniform2ui(GLint location, GLuint v0, GLuint v1);
330 void glUniform1ui(GLint location, GLuint v0);
331 GLint glGetFragDataLocation(GLuint program, const GLchar *name);
332 void glBindFragDataLocation(GLuint program, GLuint color, const GLchar *name);
333 void glGetUniformuiv(GLuint program, GLint location, GLuint *params);
334 void glVertexAttribI4usv(GLuint index, const GLushort *v);
335 void glVertexAttribI4ubv(GLuint index, const GLubyte *v);
336 void glVertexAttribI4sv(GLuint index, const GLshort *v);
337 void glVertexAttribI4bv(GLuint index, const GLbyte *v);
338 void glVertexAttribI4uiv(GLuint index, const GLuint *v);
339 void glVertexAttribI3uiv(GLuint index, const GLuint *v);
340 void glVertexAttribI2uiv(GLuint index, const GLuint *v);
341 void glVertexAttribI1uiv(GLuint index, const GLuint *v);
342 void glVertexAttribI4iv(GLuint index, const GLint *v);
343 void glVertexAttribI3iv(GLuint index, const GLint *v);
344 void glVertexAttribI2iv(GLuint index, const GLint *v);
345 void glVertexAttribI1iv(GLuint index, const GLint *v);
346 void glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
347 void glVertexAttribI3ui(GLuint index, GLuint x, GLuint y, GLuint z);
348 void glVertexAttribI2ui(GLuint index, GLuint x, GLuint y);
349 void glVertexAttribI1ui(GLuint index, GLuint x);
350 void glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
351 void glVertexAttribI3i(GLuint index, GLint x, GLint y, GLint z);
352 void glVertexAttribI2i(GLuint index, GLint x, GLint y);
353 void glVertexAttribI1i(GLuint index, GLint x);
354 void glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params);
355 void glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params);
356 void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
357 void glEndConditionalRender();
358 void glBeginConditionalRender(GLuint id, GLenum mode);
359 void glClampColor(GLenum target, GLenum clamp);
360 void glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
361 void glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode);
362 void glBindBufferBase(GLenum target, GLuint index, GLuint buffer);
363 void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
364 void glEndTransformFeedback();
365 void glBeginTransformFeedback(GLenum primitiveMode);
366 GLboolean glIsEnabledi(GLenum target, GLuint index);
367 void glDisablei(GLenum target, GLuint index);
368 void glEnablei(GLenum target, GLuint index);
369 void glGetIntegeri_v(GLenum target, GLuint index, GLint *data);
370 void glGetBooleani_v(GLenum target, GLuint index, GLboolean *data);
371 void glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
372
373 // OpenGL 3.1 core functions
374 void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
375 void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
376 void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
377 GLuint glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName);
378 void glGetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
379 void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
380 void glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar *const *uniformNames, GLuint *uniformIndices);
381 void glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
382 void glPrimitiveRestartIndex(GLuint index);
383 void glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer);
384 void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
385 void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
386
387 // OpenGL 3.2 core functions
388 void glSampleMaski(GLuint maskNumber, GLbitfield mask);
389 void glGetMultisamplefv(GLenum pname, GLuint index, GLfloat *val);
390 void glTexImage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
391 void glTexImage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
392 void glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level);
393 void glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params);
394 void glGetInteger64i_v(GLenum target, GLuint index, GLint64 *data);
395 void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
396 void glGetInteger64v(GLenum pname, GLint64 *data);
397 void glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
398 GLenum glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
399 void glDeleteSync(GLsync sync);
400 GLboolean glIsSync(GLsync sync);
401 GLsync glFenceSync(GLenum condition, GLbitfield flags);
402 void glProvokingVertex(GLenum mode);
403 void glMultiDrawElementsBaseVertex(GLenum mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei drawcount, const GLint *basevertex);
404 void glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
405 void glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
406 void glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
407
408 // OpenGL 3.3 core functions
409 void glVertexAttribP4uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
410 void glVertexAttribP4ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
411 void glVertexAttribP3uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
412 void glVertexAttribP3ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
413 void glVertexAttribP2uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
414 void glVertexAttribP2ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
415 void glVertexAttribP1uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
416 void glVertexAttribP1ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
417 void glVertexAttribDivisor(GLuint index, GLuint divisor);
418 void glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params);
419 void glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params);
420 void glQueryCounter(GLuint id, GLenum target);
421 void glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params);
422 void glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params);
423 void glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params);
424 void glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params);
425 void glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *param);
426 void glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *param);
427 void glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *param);
428 void glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
429 void glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *param);
430 void glSamplerParameteri(GLuint sampler, GLenum pname, GLint param);
431 void glBindSampler(GLuint unit, GLuint sampler);
432 GLboolean glIsSampler(GLuint sampler);
433 void glDeleteSamplers(GLsizei count, const GLuint *samplers);
434 void glGenSamplers(GLsizei count, GLuint *samplers);
435 GLint glGetFragDataIndex(GLuint program, const GLchar *name);
436 void glBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
437
438 // OpenGL 4.0 core functions
439 void glGetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint *params);
440 void glEndQueryIndexed(GLenum target, GLuint index);
441 void glBeginQueryIndexed(GLenum target, GLuint index, GLuint id);
442 void glDrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream);
443 void glDrawTransformFeedback(GLenum mode, GLuint id);
444 void glResumeTransformFeedback();
445 void glPauseTransformFeedback();
446 GLboolean glIsTransformFeedback(GLuint id);
447 void glGenTransformFeedbacks(GLsizei n, GLuint *ids);
448 void glDeleteTransformFeedbacks(GLsizei n, const GLuint *ids);
449 void glBindTransformFeedback(GLenum target, GLuint id);
450 void glPatchParameterfv(GLenum pname, const GLfloat *values);
451 void glPatchParameteri(GLenum pname, GLint value);
452 void glGetProgramStageiv(GLuint program, GLenum shadertype, GLenum pname, GLint *values);
453 void glGetUniformSubroutineuiv(GLenum shadertype, GLint location, GLuint *params);
454 void glUniformSubroutinesuiv(GLenum shadertype, GLsizei count, const GLuint *indices);
455 void glGetActiveSubroutineName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
456 void glGetActiveSubroutineUniformName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
457 void glGetActiveSubroutineUniformiv(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
458 GLuint glGetSubroutineIndex(GLuint program, GLenum shadertype, const GLchar *name);
459 GLint glGetSubroutineUniformLocation(GLuint program, GLenum shadertype, const GLchar *name);
460 void glGetUniformdv(GLuint program, GLint location, GLdouble *params);
461 void glUniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
462 void glUniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
463 void glUniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
464 void glUniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
465 void glUniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
466 void glUniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
467 void glUniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
468 void glUniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
469 void glUniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
470 void glUniform4dv(GLint location, GLsizei count, const GLdouble *value);
471 void glUniform3dv(GLint location, GLsizei count, const GLdouble *value);
472 void glUniform2dv(GLint location, GLsizei count, const GLdouble *value);
473 void glUniform1dv(GLint location, GLsizei count, const GLdouble *value);
474 void glUniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
475 void glUniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z);
476 void glUniform2d(GLint location, GLdouble x, GLdouble y);
477 void glUniform1d(GLint location, GLdouble x);
478 void glDrawElementsIndirect(GLenum mode, GLenum type, const void *indirect);
479 void glDrawArraysIndirect(GLenum mode, const void *indirect);
480 void glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
481 void glBlendFunci(GLuint buf, GLenum src, GLenum dst);
482 void glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
483 void glBlendEquationi(GLuint buf, GLenum mode);
484 void glMinSampleShading(GLfloat value);
485
486 // OpenGL 4.1 core functions
487 void glGetDoublei_v(GLenum target, GLuint index, GLdouble *data);
488 void glGetFloati_v(GLenum target, GLuint index, GLfloat *data);
489 void glDepthRangeIndexed(GLuint index, GLdouble n, GLdouble f);
490 void glDepthRangeArrayv(GLuint first, GLsizei count, const GLdouble *v);
491 void glScissorIndexedv(GLuint index, const GLint *v);
492 void glScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
493 void glScissorArrayv(GLuint first, GLsizei count, const GLint *v);
494 void glViewportIndexedfv(GLuint index, const GLfloat *v);
495 void glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
496 void glViewportArrayv(GLuint first, GLsizei count, const GLfloat *v);
497 void glGetVertexAttribLdv(GLuint index, GLenum pname, GLdouble *params);
498 void glVertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
499 void glVertexAttribL4dv(GLuint index, const GLdouble *v);
500 void glVertexAttribL3dv(GLuint index, const GLdouble *v);
501 void glVertexAttribL2dv(GLuint index, const GLdouble *v);
502 void glVertexAttribL1dv(GLuint index, const GLdouble *v);
503 void glVertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
504 void glVertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
505 void glVertexAttribL2d(GLuint index, GLdouble x, GLdouble y);
506 void glVertexAttribL1d(GLuint index, GLdouble x);
507 void glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
508 void glValidateProgramPipeline(GLuint pipeline);
509 void glProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
510 void glProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
511 void glProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
512 void glProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
513 void glProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
514 void glProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
515 void glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
516 void glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
517 void glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
518 void glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
519 void glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
520 void glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
521 void glProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
522 void glProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
523 void glProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
524 void glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
525 void glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
526 void glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
527 void glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
528 void glProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
529 void glProgramUniform4dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
530 void glProgramUniform4d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
531 void glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
532 void glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
533 void glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value);
534 void glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
535 void glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
536 void glProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
537 void glProgramUniform3dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
538 void glProgramUniform3d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
539 void glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
540 void glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
541 void glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value);
542 void glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
543 void glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
544 void glProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1);
545 void glProgramUniform2dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
546 void glProgramUniform2d(GLuint program, GLint location, GLdouble v0, GLdouble v1);
547 void glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
548 void glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1);
549 void glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value);
550 void glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1);
551 void glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
552 void glProgramUniform1ui(GLuint program, GLint location, GLuint v0);
553 void glProgramUniform1dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
554 void glProgramUniform1d(GLuint program, GLint location, GLdouble v0);
555 void glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
556 void glProgramUniform1f(GLuint program, GLint location, GLfloat v0);
557 void glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint *value);
558 void glProgramUniform1i(GLuint program, GLint location, GLint v0);
559 void glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params);
560 GLboolean glIsProgramPipeline(GLuint pipeline);
561 void glGenProgramPipelines(GLsizei n, GLuint *pipelines);
562 void glDeleteProgramPipelines(GLsizei n, const GLuint *pipelines);
563 void glBindProgramPipeline(GLuint pipeline);
564 GLuint glCreateShaderProgramv(GLenum type, GLsizei count, const GLchar* const *strings);
565 void glActiveShaderProgram(GLuint pipeline, GLuint program);
566 void glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
567 void glProgramParameteri(GLuint program, GLenum pname, GLint value);
568 void glProgramBinary(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
569 void glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
570 void glClearDepthf(GLfloat dd);
571 void glDepthRangef(GLfloat n, GLfloat f);
572 void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
573 void glShaderBinary(GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
574 void glReleaseShaderCompiler();
575
576 // OpenGL 4.2 core functions
577 void glDrawTransformFeedbackStreamInstanced(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
578 void glDrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei instancecount);
579 void glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
580 void glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
581 void glTexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
582 void glMemoryBarrier(GLbitfield barriers);
583 void glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
584 void glGetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
585 void glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
586 void glDrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
587 void glDrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
588 void glDrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
589
590 // OpenGL 4.3 core functions
591 void glGetObjectPtrLabel(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
592 void glObjectPtrLabel(const void *ptr, GLsizei length, const GLchar *label);
593 void glGetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
594 void glObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
595 void glPopDebugGroup();
596 void glPushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar *message);
597 GLuint glGetDebugMessageLog(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
598 void glDebugMessageCallback(GLDEBUGPROC callback, const void *userParam);
599 void glDebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
600 void glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
601 void glVertexBindingDivisor(GLuint bindingindex, GLuint divisor);
602 void glVertexAttribBinding(GLuint attribindex, GLuint bindingindex);
603 void glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
604 void glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
605 void glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
606 void glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
607 void glTextureView(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
608 void glTexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
609 void glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
610 void glTexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
611 void glShaderStorageBlockBinding(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
612 GLint glGetProgramResourceLocationIndex(GLuint program, GLenum programInterface, const GLchar *name);
613 GLint glGetProgramResourceLocation(GLuint program, GLenum programInterface, const GLchar *name);
614 void glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
615 void glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
616 GLuint glGetProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar *name);
617 void glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint *params);
618 void glMultiDrawElementsIndirect(GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride);
619 void glMultiDrawArraysIndirect(GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride);
620 void glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
621 void glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments);
622 void glInvalidateBufferData(GLuint buffer);
623 void glInvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length);
624 void glInvalidateTexImage(GLuint texture, GLint level);
625 void glInvalidateTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
626 void glGetInternalformati64v(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params);
627 void glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params);
628 void glFramebufferParameteri(GLenum target, GLenum pname, GLint param);
629 void glCopyImageSubData(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);
630 void glDispatchComputeIndirect(GLintptr indirect);
631 void glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
632 void glClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
633 void glClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
634
635 // OpenGL 4.4 core functions
636 void glBindVertexBuffers(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
637 void glBindImageTextures(GLuint first, GLsizei count, const GLuint *textures);
638 void glBindSamplers(GLuint first, GLsizei count, const GLuint *samplers);
639 void glBindTextures(GLuint first, GLsizei count, const GLuint *textures);
640 void glBindBuffersRange(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
641 void glBindBuffersBase(GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
642 void glClearTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
643 void glClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
644 void glBufferStorage(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
645
646 // OpenGL 4.5 core functions
647 void glTextureBarrier();
648 void glReadnPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
649 void glGetnUniformuiv(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
650 void glGetnUniformiv(GLuint program, GLint location, GLsizei bufSize, GLint *params);
651 void glGetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
652 void glGetnUniformdv(GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
653 void glGetnTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
654 void glGetnCompressedTexImage(GLenum target, GLint lod, GLsizei bufSize, void *pixels);
655 GLenum glGetGraphicsResetStatus();
656 void glGetCompressedTextureSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
657 void glGetTextureSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
658 void glMemoryBarrierByRegion(GLbitfield barriers);
659 void glCreateQueries(GLenum target, GLsizei n, GLuint *ids);
660 void glCreateProgramPipelines(GLsizei n, GLuint *pipelines);
661 void glCreateSamplers(GLsizei n, GLuint *samplers);
662 void glGetVertexArrayIndexed64iv(GLuint vaobj, GLuint index, GLenum pname, GLint64 *param);
663 void glGetVertexArrayIndexediv(GLuint vaobj, GLuint index, GLenum pname, GLint *param);
664 void glGetVertexArrayiv(GLuint vaobj, GLenum pname, GLint *param);
665 void glVertexArrayBindingDivisor(GLuint vaobj, GLuint bindingindex, GLuint divisor);
666 void glVertexArrayAttribLFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
667 void glVertexArrayAttribIFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
668 void glVertexArrayAttribFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
669 void glVertexArrayAttribBinding(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
670 void glVertexArrayVertexBuffers(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
671 void glVertexArrayVertexBuffer(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
672 void glVertexArrayElementBuffer(GLuint vaobj, GLuint buffer);
673 void glEnableVertexArrayAttrib(GLuint vaobj, GLuint index);
674 void glDisableVertexArrayAttrib(GLuint vaobj, GLuint index);
675 void glCreateVertexArrays(GLsizei n, GLuint *arrays);
676 void glGetTextureParameteriv(GLuint texture, GLenum pname, GLint *params);
677 void glGetTextureParameterIuiv(GLuint texture, GLenum pname, GLuint *params);
678 void glGetTextureParameterIiv(GLuint texture, GLenum pname, GLint *params);
679 void glGetTextureParameterfv(GLuint texture, GLenum pname, GLfloat *params);
680 void glGetTextureLevelParameteriv(GLuint texture, GLint level, GLenum pname, GLint *params);
681 void glGetTextureLevelParameterfv(GLuint texture, GLint level, GLenum pname, GLfloat *params);
682 void glGetCompressedTextureImage(GLuint texture, GLint level, GLsizei bufSize, void *pixels);
683 void glGetTextureImage(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
684 void glBindTextureUnit(GLuint unit, GLuint texture);
685 void glGenerateTextureMipmap(GLuint texture);
686 void glTextureParameteriv(GLuint texture, GLenum pname, const GLint *param);
687 void glTextureParameterIuiv(GLuint texture, GLenum pname, const GLuint *params);
688 void glTextureParameterIiv(GLuint texture, GLenum pname, const GLint *params);
689 void glTextureParameteri(GLuint texture, GLenum pname, GLint param);
690 void glTextureParameterfv(GLuint texture, GLenum pname, const GLfloat *param);
691 void glTextureParameterf(GLuint texture, GLenum pname, GLfloat param);
692 void glCopyTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
693 void glCopyTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
694 void glCopyTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
695 void glCompressedTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
696 void glCompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
697 void glCompressedTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
698 void glTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
699 void glTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
700 void glTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
701 void glTextureStorage3DMultisample(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
702 void glTextureStorage2DMultisample(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
703 void glTextureStorage3D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
704 void glTextureStorage2D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
705 void glTextureStorage1D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
706 void glTextureBufferRange(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizei size);
707 void glTextureBuffer(GLuint texture, GLenum internalformat, GLuint buffer);
708 void glCreateTextures(GLenum target, GLsizei n, GLuint *textures);
709 void glGetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname, GLint *params);
710 void glNamedRenderbufferStorageMultisample(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
711 void glNamedRenderbufferStorage(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
712 void glCreateRenderbuffers(GLsizei n, GLuint *renderbuffers);
713 void glGetNamedFramebufferAttachmentParameteriv(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
714 void glGetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname, GLint *param);
715 GLenum glCheckNamedFramebufferStatus(GLuint framebuffer, GLenum target);
716 void glBlitNamedFramebuffer(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
717 void glClearNamedFramebufferfi(GLuint framebuffer, GLenum buffer, GLfloat depth, GLint stencil);
718 void glClearNamedFramebufferfv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
719 void glClearNamedFramebufferuiv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
720 void glClearNamedFramebufferiv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
721 void glInvalidateNamedFramebufferSubData(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
722 void glInvalidateNamedFramebufferData(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments);
723 void glNamedFramebufferReadBuffer(GLuint framebuffer, GLenum src);
724 void glNamedFramebufferDrawBuffers(GLuint framebuffer, GLsizei n, const GLenum *bufs);
725 void glNamedFramebufferDrawBuffer(GLuint framebuffer, GLenum buf);
726 void glNamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
727 void glNamedFramebufferTexture(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
728 void glNamedFramebufferParameteri(GLuint framebuffer, GLenum pname, GLint param);
729 void glNamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
730 void glCreateFramebuffers(GLsizei n, GLuint *framebuffers);
731 void glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, void *data);
732 void glGetNamedBufferPointerv(GLuint buffer, GLenum pname, void * *params);
733 void glGetNamedBufferParameteri64v(GLuint buffer, GLenum pname, GLint64 *params);
734 void glGetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params);
735 void glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length);
736 GLboolean glUnmapNamedBuffer(GLuint buffer);
737 void * glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access);
738 void * glMapNamedBuffer(GLuint buffer, GLenum access);
739 void glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data);
740 void glClearNamedBufferData(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
741 void glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size);
742 void glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, const void *data);
743 void glNamedBufferData(GLuint buffer, GLsizei size, const void *data, GLenum usage);
744 void glNamedBufferStorage(GLuint buffer, GLsizei size, const void *data, GLbitfield flags);
745 void glCreateBuffers(GLsizei n, GLuint *buffers);
746 void glGetTransformFeedbacki64_v(GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
747 void glGetTransformFeedbacki_v(GLuint xfb, GLenum pname, GLuint index, GLint *param);
748 void glGetTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param);
749 void glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size);
750 void glTransformFeedbackBufferBase(GLuint xfb, GLuint index, GLuint buffer);
751 void glCreateTransformFeedbacks(GLsizei n, GLuint *ids);
752 void glClipControl(GLenum origin, GLenum depth);
753
754 // OpenGL 1.0 deprecated functions
755 void glTranslatef(GLfloat x, GLfloat y, GLfloat z);
756 void glTranslated(GLdouble x, GLdouble y, GLdouble z);
757 void glScalef(GLfloat x, GLfloat y, GLfloat z);
758 void glScaled(GLdouble x, GLdouble y, GLdouble z);
759 void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
760 void glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
761 void glPushMatrix();
762 void glPopMatrix();
763 void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
764 void glMultMatrixd(const GLdouble *m);
765 void glMultMatrixf(const GLfloat *m);
766 void glMatrixMode(GLenum mode);
767 void glLoadMatrixd(const GLdouble *m);
768 void glLoadMatrixf(const GLfloat *m);
769 void glLoadIdentity();
770 void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
771 GLboolean glIsList(GLuint list);
772 void glGetTexGeniv(GLenum coord, GLenum pname, GLint *params);
773 void glGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params);
774 void glGetTexGendv(GLenum coord, GLenum pname, GLdouble *params);
775 void glGetTexEnviv(GLenum target, GLenum pname, GLint *params);
776 void glGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params);
777 void glGetPolygonStipple(GLubyte *mask);
778 void glGetPixelMapusv(GLenum map, GLushort *values);
779 void glGetPixelMapuiv(GLenum map, GLuint *values);
780 void glGetPixelMapfv(GLenum map, GLfloat *values);
781 void glGetMaterialiv(GLenum face, GLenum pname, GLint *params);
782 void glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params);
783 void glGetMapiv(GLenum target, GLenum query, GLint *v);
784 void glGetMapfv(GLenum target, GLenum query, GLfloat *v);
785 void glGetMapdv(GLenum target, GLenum query, GLdouble *v);
786 void glGetLightiv(GLenum light, GLenum pname, GLint *params);
787 void glGetLightfv(GLenum light, GLenum pname, GLfloat *params);
788 void glGetClipPlane(GLenum plane, GLdouble *equation);
789 void glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
790 void glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
791 void glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values);
792 void glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values);
793 void glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat *values);
794 void glPixelTransferi(GLenum pname, GLint param);
795 void glPixelTransferf(GLenum pname, GLfloat param);
796 void glPixelZoom(GLfloat xfactor, GLfloat yfactor);
797 void glAlphaFunc(GLenum func, GLfloat ref);
798 void glEvalPoint2(GLint i, GLint j);
799 void glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
800 void glEvalPoint1(GLint i);
801 void glEvalMesh1(GLenum mode, GLint i1, GLint i2);
802 void glEvalCoord2fv(const GLfloat *u);
803 void glEvalCoord2f(GLfloat u, GLfloat v);
804 void glEvalCoord2dv(const GLdouble *u);
805 void glEvalCoord2d(GLdouble u, GLdouble v);
806 void glEvalCoord1fv(const GLfloat *u);
807 void glEvalCoord1f(GLfloat u);
808 void glEvalCoord1dv(const GLdouble *u);
809 void glEvalCoord1d(GLdouble u);
810 void glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
811 void glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
812 void glMapGrid1f(GLint un, GLfloat u1, GLfloat u2);
813 void glMapGrid1d(GLint un, GLdouble u1, GLdouble u2);
814 void glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
815 void glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
816 void glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
817 void glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
818 void glPushAttrib(GLbitfield mask);
819 void glPopAttrib();
820 void glAccum(GLenum op, GLfloat value);
821 void glIndexMask(GLuint mask);
822 void glClearIndex(GLfloat c);
823 void glClearAccum(GLfloat