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_4_COMPATIBILITY_H
51#define QOPENGLVERSIONFUNCTIONS_4_4_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_4_Compatibility : public QAbstractOpenGLFunctions
63{
64public:
65 QOpenGLFunctions_4_4_Compatibility();
66 ~QOpenGLFunctions_4_4_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 1.0 deprecated functions
647 void glTranslatef(GLfloat x, GLfloat y, GLfloat z);
648 void glTranslated(GLdouble x, GLdouble y, GLdouble z);
649 void glScalef(GLfloat x, GLfloat y, GLfloat z);
650 void glScaled(GLdouble x, GLdouble y, GLdouble z);
651 void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
652 void glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
653 void glPushMatrix();
654 void glPopMatrix();
655 void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
656 void glMultMatrixd(const GLdouble *m);
657 void glMultMatrixf(const GLfloat *m);
658 void glMatrixMode(GLenum mode);
659 void glLoadMatrixd(const GLdouble *m);
660 void glLoadMatrixf(const GLfloat *m);
661 void glLoadIdentity();
662 void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
663 GLboolean glIsList(GLuint list);
664 void glGetTexGeniv(GLenum coord, GLenum pname, GLint *params);
665 void glGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params);
666 void glGetTexGendv(GLenum coord, GLenum pname, GLdouble *params);
667 void glGetTexEnviv(GLenum target, GLenum pname, GLint *params);
668 void glGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params);
669 void glGetPolygonStipple(GLubyte *mask);
670 void glGetPixelMapusv(GLenum map, GLushort *values);
671 void glGetPixelMapuiv(GLenum map, GLuint *values);
672 void glGetPixelMapfv(GLenum map, GLfloat *values);
673 void glGetMaterialiv(GLenum face, GLenum pname, GLint *params);
674 void glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params);
675 void glGetMapiv(GLenum target, GLenum query, GLint *v);
676 void glGetMapfv(GLenum target, GLenum query, GLfloat *v);
677 void glGetMapdv(GLenum target, GLenum query, GLdouble *v);
678 void glGetLightiv(GLenum light, GLenum pname, GLint *params);
679 void glGetLightfv(GLenum light, GLenum pname, GLfloat *params);
680 void glGetClipPlane(GLenum plane, GLdouble *equation);
681 void glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
682 void glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
683 void glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values);
684 void glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values);
685 void glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat *values);
686 void glPixelTransferi(GLenum pname, GLint param);
687 void glPixelTransferf(GLenum pname, GLfloat param);
688 void glPixelZoom(GLfloat xfactor, GLfloat yfactor);
689 void glAlphaFunc(GLenum func, GLfloat ref);
690 void glEvalPoint2(GLint i, GLint j);
691 void glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
692 void glEvalPoint1(GLint i);
693 void glEvalMesh1(GLenum mode, GLint i1, GLint i2);
694 void glEvalCoord2fv(const GLfloat *u);
695 void glEvalCoord2f(GLfloat u, GLfloat v);
696 void glEvalCoord2dv(const GLdouble *u);
697 void glEvalCoord2d(GLdouble u, GLdouble v);
698 void glEvalCoord1fv(const GLfloat *u);
699 void glEvalCoord1f(GLfloat u);
700 void glEvalCoord1dv(const GLdouble *u);
701 void glEvalCoord1d(GLdouble u);
702 void glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
703 void glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
704 void glMapGrid1f(GLint un, GLfloat u1, GLfloat u2);
705 void glMapGrid1d(GLint un, GLdouble u1, GLdouble u2);
706 void glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
707 void glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
708 void glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
709 void glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
710 void glPushAttrib(GLbitfield mask);
711 void glPopAttrib();
712 void glAccum(GLenum op, GLfloat value);
713 void glIndexMask(GLuint mask);
714 void glClearIndex(GLfloat c);
715 void glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
716 void glPushName(GLuint name);
717 void glPopName();
718 void glPassThrough(GLfloat token);
719 void glLoadName(GLuint name);
720 void glInitNames();
721 GLint glRenderMode(GLenum mode);
722 void glSelectBuffer(GLsizei size, GLuint *buffer);
723 void glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer);
724 void glTexGeniv(GLenum coord, GLenum pname, const GLint *params);
725 void glTexGeni(GLenum coord, GLenum pname, GLint param);
726 void glTexGenfv(GLenum coord, GLenum pname, const GLfloat *params);
727 void glTexGenf(GLenum coord, GLenum pname, GLfloat param);
728 void glTexGendv(GLenum coord, GLenum pname, const GLdouble *params);
729 void glTexGend(GLenum coord, GLenum pname, GLdouble param);
730 void glTexEnviv(GLenum target, GLenum pname, const GLint *params);
731 void glTexEnvi(GLenum target, GLenum pname, GLint param);
732 void glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params);
733 void glTexEnvf(GLenum target, GLenum pname, GLfloat param);
734 void glShadeModel(GLenum mode);
735 void glPolygonStipple(const GLubyte *mask);
736 void glMaterialiv(GLenum face, GLenum pname, const GLint *params);
737 void glMateriali(GLenum face, GLenum pname, GLint param);
738 void glMaterialfv(GLenum face, GLenum pname, const GLfloat *params);
739 void glMaterialf(GLenum face, GLenum pname, GLfloat param);
740 void glLineStipple(GLint factor, GLushort pattern);
741 void glLightModeliv(GLenum pname, const GLint *params);
742 void glLightModeli(GLenum pname, GLint param);
743 void glLightModelfv(GLenum pname, const GLfloat *params);
744 void glLightModelf(GLenum pname, GLfloat param);
745 void glLightiv(GLenum light, GLenum pname, const GLint *params);
746 void glLighti(GLenum light, GLenum pname, GLint param);
747 void glLightfv(GLenum light, GLenum pname, const GLfloat *params);
748 void glLightf(GLenum light, GLenum pname, GLfloat param);
749 void glFogiv(GLenum pname, const GLint *params);
750 void glFogi(GLenum pname, GLint param);
751 void glFogfv(GLenum pname, const GLfloat *params);
752 void glFogf(GLenum pname, GLfloat param);
753 void glColorMaterial(GLenum face, GLenum mode);
754 void glClipPlane(GLenum plane, const GLdouble *equation);
755 void glVertex4sv(const GLshort *v);
756 void glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w);
757 void glVertex4iv(const GLint *v);
758 void glVertex4i(GLint x, GLint y, GLint z, GLint w);
759 void glVertex4fv(const GLfloat *v);
760 void glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
761 void glVertex4dv(const GLdouble *v);
762 void glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
763 void glVertex3sv(const GLshort *v);
764 void glVertex3s(GLshort x, GLshort y, GLshort z);
765 void glVertex3iv(const GLint *v);
766 void glVertex3i(GLint x, GLint y, GLint z);
767 void glVertex3fv(const GLfloat *v);
768 void glVertex3f(GLfloat x, GLfloat y, GLfloat z);
769 void glVertex3dv(const GLdouble *v);
770 void glVertex3d(GLdouble x, GLdouble y, GLdouble z);
771 void glVertex2sv(const GLshort *v);
772 void glVertex2s(GLshort x, GLshort y);
773 void glVertex2iv(const GLint *v);
774 void glVertex2i(GLint x, GLint y);
775 void glVertex2fv(const GLfloat *v);
776 void glVertex2f(GLfloat x, GLfloat y);
777 void glVertex2dv(const GLdouble *v);
778 void glVertex2d(GLdouble x, GLdouble y);
779 void glTexCoord4sv(const GLshort *v);
780 void glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q);
781 void glTexCoord4iv(const GLint *v);
782 void glTexCoord4i(GLint s, GLint t, GLint r, GLint q);
783 void glTexCoord4fv(const GLfloat *v);
784 void glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
785 void glTexCoord4dv(const GLdouble *v);
786 void glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
787 void glTexCoord3sv(const GLshort *v);
788 void glTexCoord3s(GLshort s, GLshort t, GLshort r);
789 void glTexCoord3iv(const GLint *v);
790 void glTexCoord3i(GLint s, GLint t, GLint r);
791 void glTexCoord3fv(const GLfloat *v);
792 void glTexCoord3f(GLfloat s, GLfloat t, GLfloat r);
793 void glTexCoord3dv(const GLdouble *v);
794 void glTexCoord3d(GLdouble s, GLdouble t, GLdouble r);
795 void glTexCoord2sv(const GLshort *v);
796 void glTexCoord2s(GLshort s, GLshort t);
797 void glTexCoord2iv(const GLint *v);
798 void glTexCoord2i(GLint s, GLint t);
799 void glTexCoord2fv(const GLfloat *v);
800 void glTexCoord2f(GLfloat s, GLfloat t);
801 void glTexCoord2dv(const GLdouble *v);
802 void glTexCoord2d(GLdouble s, GLdouble t);
803 void glTexCoord1sv(const GLshort *v);
804 void glTexCoord1s(GLshort s);
805 void glTexCoord1iv(const GLint *v);
806 void glTexCoord1i(GLint s);
807 void glTexCoord1fv(const GLfloat *v);
808 void glTexCoord1f(GLfloat s);
809 void glTexCoord1dv(const GLdouble *v);
810 void glTexCoord1d(GLdouble s);
811 void glRectsv(const GLshort *v1, const GLshort *v2);
812 void glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
813 void glRectiv(const GLint *v1, const GLint *v2);
814 void glRecti(GLint x1, GLint y1, GLint x2, GLint y2);
815 void glRectfv(const GLfloat *v1, const GLfloat *v2);
816 void glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
817 void glRectdv(const GLdouble *v1, const GLdouble *v2);
818 void glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
819 void glRasterPos4sv(const GLshort *v);
820 void glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w);
821 void glRasterPos4iv(const GLint *v);
822 void glRasterPos4i(GLint x, GLint y, GLint z, GLint w);
823 void glRasterPos4fv(const GLfloat *v);
824 void glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
825 void glRasterPos4dv(const GLdouble *v);
826 void glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
827 void glRasterPos3sv(const GLshort *v);
828 void glRasterPos3s(GLshort x, GLshort y, GLshort z);
829 void glRasterPos3iv(const GLint *v);
830 void glRasterPos3i(GLint x, GLint y, GLint z);
831 void glRasterPos3fv(const GLfloat *v);
832 void glRasterPos3f(GLfloat x, GLfloat y, GLfloat z);
833 void glRasterPos3dv(const GLdouble *v);
834 void glRasterPos3d(GLdouble x, GLdouble y, GLdouble z);
835 void glRasterPos2sv(const GLshort *v);
836 void glRasterPos2s(GLshort x, GLshort y);
837 void glRasterPos2iv(const GLint *v);
838 void glRasterPos2i(GLint x, GLint y);
839 void glRasterPos2fv(const GLfloat *v);
840 void glRasterPos2f(GLfloat x, GLfloat y);
841 void glRasterPos2dv(const GLdouble *v);
842 void glRasterPos2d(GLdouble x, GLdouble y);
843 void glNormal3sv(const GLshort *v);
844 void glNormal3s(GLshort nx, GLshort ny, GLshort nz);
845 void glNormal3iv(const GLint *v);
846 void glNormal3i(GLint nx, GLint ny, GLint nz);
847 void glNormal3fv(const GLfloat *v);
848 void glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz);
849 void glNormal3dv(const GLdouble *v);
850 void glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz);
851 void glNormal3bv(const GLbyte *v);
852 void glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz);
853 void glIndexsv(const GLshort *c);
854 void glIndexs(GLshort c);
855 void glIndexiv(const GLint *c);
856 void glIndexi(GLint c);
857 void glIndexfv(const GLfloat *c);
858 void glIndexf(GLfloat c);
859 void glIndexdv(const GLdouble *c);
860 void glIndexd(GLdouble c);
861 void glEnd();
862 void glEdgeFlagv(const GLboolean *flag);
863 void glEdgeFlag(GLboolean flag);
864 void glColor4usv(const GLushort *v);
865 void glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha);
866 void glColor4uiv(const GLuint *v);
867 void glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha);
868 void glColor4ubv(const GLubyte *v);
869 void glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
870 void glColor4sv(const GLshort *v);
871 void glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha);
872 void glColor4iv(const GLint *v);
873 void glColor4i(GLint red, GLint green, GLint blue, GLint alpha);
874 void glColor4fv(const GLfloat *v);
875 void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
876 void glColor4dv(const GLdouble *v);
877 void glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
878 void glColor4bv(const GLbyte *v);
879 void glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
880 void glColor3usv(const GLushort *v);
881 void glColor3us(GLushort red, GLushort green, GLushort blue);
882 void glColor3uiv(const GLuint *v);
883 void glColor3ui(GLuint red, GLuint green, GLuint blue);
884 void glColor3ubv(const GLubyte *v);
885 void glColor3ub(GLubyte red, GLubyte green, GLubyte blue);
886 void glColor3sv(const GLshort *v);
887 void glColor3s(GLshort red, GLshort green, GLshort blue);
888 void glColor3iv(const GLint *v);
889 void glColor3i(GLint red, GLint green, GLint blue);
890 void glColor3fv(const GLfloat *v);
891 void glColor3f(GLfloat red, GLfloat green, GLfloat blue);
892 void glColor3dv(const GLdouble *v);
893 void glColor3d(GLdouble red, GLdouble green, GLdouble blue);
894 void glColor3bv(const GLbyte *v);
895 void glColor3b(GLbyte red, GLbyte green, GLbyte blue);
896 void glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
897 void glBegin(GLenum mode);
898 void glListBase(GLuint base);
899 GLuint glGenLists(GLsizei range);
900 void glDeleteLists(GLuint list, GLsizei range);
901 void glCallLists(GLsizei n, GLenum type, const void *lists);
902 void