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 QtOpenGL 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_CORE_H
51#define QOPENGLVERSIONFUNCTIONS_4_4_CORE_H
52
53#include <QtOpenGL/qtopenglglobal.h>
54
55#if !defined(QT_NO_OPENGL) && !QT_CONFIG(opengles2)
56
57#include <QtOpenGL/QOpenGLVersionProfile>
58#include <QtOpenGL/QOpenGLVersionFunctions>
59#include <QtGui/qopenglcontext.h>
60
61// MemoryBarrier is a macro on some architectures on Windows
62#ifdef Q_OS_WIN
63#pragma push_macro("MemoryBarrier")
64#undef MemoryBarrier
65#endif
66
67QT_BEGIN_NAMESPACE
68
69class Q_OPENGL_EXPORT QOpenGLFunctions_4_4_Core : public QAbstractOpenGLFunctions
70{
71public:
72 QOpenGLFunctions_4_4_Core();
73 ~QOpenGLFunctions_4_4_Core();
74
75 bool initializeOpenGLFunctions() override;
76
77 // OpenGL 1.0 core functions
78 void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
79 void glDepthRange(GLdouble nearVal, GLdouble farVal);
80 GLboolean glIsEnabled(GLenum cap);
81 void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
82 void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
83 void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params);
84 void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
85 void glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
86 const GLubyte * glGetString(GLenum name);
87 void glGetIntegerv(GLenum pname, GLint *data);
88 void glGetFloatv(GLenum pname, GLfloat *data);
89 GLenum glGetError();
90 void glGetDoublev(GLenum pname, GLdouble *data);
91 void glGetBooleanv(GLenum pname, GLboolean *data);
92 void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
93 void glReadBuffer(GLenum src);
94 void glPixelStorei(GLenum pname, GLint param);
95 void glPixelStoref(GLenum pname, GLfloat param);
96 void glDepthFunc(GLenum func);
97 void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
98 void glStencilFunc(GLenum func, GLint ref, GLuint mask);
99 void glLogicOp(GLenum opcode);
100 void glBlendFunc(GLenum sfactor, GLenum dfactor);
101 void glFlush();
102 void glFinish();
103 void glEnable(GLenum cap);
104 void glDisable(GLenum cap);
105 void glDepthMask(GLboolean flag);
106 void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
107 void glStencilMask(GLuint mask);
108 void glClearDepth(GLdouble depth);
109 void glClearStencil(GLint s);
110 void glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
111 void glClear(GLbitfield mask);
112 void glDrawBuffer(GLenum buf);
113 void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
114 void glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
115 void glTexParameteriv(GLenum target, GLenum pname, const GLint *params);
116 void glTexParameteri(GLenum target, GLenum pname, GLint param);
117 void glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params);
118 void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
119 void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
120 void glPolygonMode(GLenum face, GLenum mode);
121 void glPointSize(GLfloat size);
122 void glLineWidth(GLfloat width);
123 void glHint(GLenum target, GLenum mode);
124 void glFrontFace(GLenum mode);
125 void glCullFace(GLenum mode);
126
127 // OpenGL 1.1 core functions
128 GLboolean glIsTexture(GLuint texture);
129 void glGenTextures(GLsizei n, GLuint *textures);
130 void glDeleteTextures(GLsizei n, const GLuint *textures);
131 void glBindTexture(GLenum target, GLuint texture);
132 void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
133 void glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
134 void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
135 void glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
136 void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
137 void glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
138 void glPolygonOffset(GLfloat factor, GLfloat units);
139 void glDrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices);
140 void glDrawArrays(GLenum mode, GLint first, GLsizei count);
141
142 // OpenGL 1.2 core functions
143 void glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
144 void glBlendEquation(GLenum mode);
145 void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
146 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);
147 void glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
148 void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
149
150 // OpenGL 1.3 core functions
151 void glGetCompressedTexImage(GLenum target, GLint level, void *img);
152 void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
153 void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
154 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);
155 void glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
156 void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
157 void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
158 void glSampleCoverage(GLfloat value, GLboolean invert);
159 void glActiveTexture(GLenum texture);
160
161 // OpenGL 1.4 core functions
162 void glPointParameteriv(GLenum pname, const GLint *params);
163 void glPointParameteri(GLenum pname, GLint param);
164 void glPointParameterfv(GLenum pname, const GLfloat *params);
165 void glPointParameterf(GLenum pname, GLfloat param);
166 void glMultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei drawcount);
167 void glMultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
168 void glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
169
170 // OpenGL 1.5 core functions
171 void glGetBufferPointerv(GLenum target, GLenum pname, void * *params);
172 void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params);
173 GLboolean glUnmapBuffer(GLenum target);
174 void * glMapBuffer(GLenum target, GLenum access);
175 void glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, void *data);
176 void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
177 void glBufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage);
178 GLboolean glIsBuffer(GLuint buffer);
179 void glGenBuffers(GLsizei n, GLuint *buffers);
180 void glDeleteBuffers(GLsizei n, const GLuint *buffers);
181 void glBindBuffer(GLenum target, GLuint buffer);
182 void glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
183 void glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params);
184 void glGetQueryiv(GLenum target, GLenum pname, GLint *params);
185 void glEndQuery(GLenum target);
186 void glBeginQuery(GLenum target, GLuint id);
187 GLboolean glIsQuery(GLuint id);
188 void glDeleteQueries(GLsizei n, const GLuint *ids);
189 void glGenQueries(GLsizei n, GLuint *ids);
190
191 // OpenGL 2.0 core functions
192 void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
193 void glVertexAttrib4usv(GLuint index, const GLushort *v);
194 void glVertexAttrib4uiv(GLuint index, const GLuint *v);
195 void glVertexAttrib4ubv(GLuint index, const GLubyte *v);
196 void glVertexAttrib4sv(GLuint index, const GLshort *v);
197 void glVertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
198 void glVertexAttrib4iv(GLuint index, const GLint *v);
199 void glVertexAttrib4fv(GLuint index, const GLfloat *v);
200 void glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
201 void glVertexAttrib4dv(GLuint index, const GLdouble *v);
202 void glVertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
203 void glVertexAttrib4bv(GLuint index, const GLbyte *v);
204 void glVertexAttrib4Nusv(GLuint index, const GLushort *v);
205 void glVertexAttrib4Nuiv(GLuint index, const GLuint *v);
206 void glVertexAttrib4Nubv(GLuint index, const GLubyte *v);
207 void glVertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
208 void glVertexAttrib4Nsv(GLuint index, const GLshort *v);
209 void glVertexAttrib4Niv(GLuint index, const GLint *v);
210 void glVertexAttrib4Nbv(GLuint index, const GLbyte *v);
211 void glVertexAttrib3sv(GLuint index, const GLshort *v);
212 void glVertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z);
213 void glVertexAttrib3fv(GLuint index, const GLfloat *v);
214 void glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z);
215 void glVertexAttrib3dv(GLuint index, const GLdouble *v);
216 void glVertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
217 void glVertexAttrib2sv(GLuint index, const GLshort *v);
218 void glVertexAttrib2s(GLuint index, GLshort x, GLshort y);
219 void glVertexAttrib2fv(GLuint index, const GLfloat *v);
220 void glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y);
221 void glVertexAttrib2dv(GLuint index, const GLdouble *v);
222 void glVertexAttrib2d(GLuint index, GLdouble x, GLdouble y);
223 void glVertexAttrib1sv(GLuint index, const GLshort *v);
224 void glVertexAttrib1s(GLuint index, GLshort x);
225 void glVertexAttrib1fv(GLuint index, const GLfloat *v);
226 void glVertexAttrib1f(GLuint index, GLfloat x);
227 void glVertexAttrib1dv(GLuint index, const GLdouble *v);
228 void glVertexAttrib1d(GLuint index, GLdouble x);
229 void glValidateProgram(GLuint program);
230 void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
231 void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
232 void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
233 void glUniform4iv(GLint location, GLsizei count, const GLint *value);
234 void glUniform3iv(GLint location, GLsizei count, const GLint *value);
235 void glUniform2iv(GLint location, GLsizei count, const GLint *value);
236 void glUniform1iv(GLint location, GLsizei count, const GLint *value);
237 void glUniform4fv(GLint location, GLsizei count, const GLfloat *value);
238 void glUniform3fv(GLint location, GLsizei count, const GLfloat *value);
239 void glUniform2fv(GLint location, GLsizei count, const GLfloat *value);
240 void glUniform1fv(GLint location, GLsizei count, const GLfloat *value);
241 void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
242 void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2);
243 void glUniform2i(GLint location, GLint v0, GLint v1);
244 void glUniform1i(GLint location, GLint v0);
245 void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
246 void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
247 void glUniform2f(GLint location, GLfloat v0, GLfloat v1);
248 void glUniform1f(GLint location, GLfloat v0);
249 void glUseProgram(GLuint program);
250 void glShaderSource(GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length);
251 void glLinkProgram(GLuint program);
252 GLboolean glIsShader(GLuint shader);
253 GLboolean glIsProgram(GLuint program);
254 void glGetVertexAttribPointerv(GLuint index, GLenum pname, void * *pointer);
255 void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params);
256 void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params);
257 void glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params);
258 void glGetUniformiv(GLuint program, GLint location, GLint *params);
259 void glGetUniformfv(GLuint program, GLint location, GLfloat *params);
260 GLint glGetUniformLocation(GLuint program, const GLchar *name);
261 void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
262 void glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
263 void glGetShaderiv(GLuint shader, GLenum pname, GLint *params);
264 void glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
265 void glGetProgramiv(GLuint program, GLenum pname, GLint *params);
266 GLint glGetAttribLocation(GLuint program, const GLchar *name);
267 void glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
268 void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
269 void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
270 void glEnableVertexAttribArray(GLuint index);
271 void glDisableVertexAttribArray(GLuint index);
272 void glDetachShader(GLuint program, GLuint shader);
273 void glDeleteShader(GLuint shader);
274 void glDeleteProgram(GLuint program);
275 GLuint glCreateShader(GLenum type);
276 GLuint glCreateProgram();
277 void glCompileShader(GLuint shader);
278 void glBindAttribLocation(GLuint program, GLuint index, const GLchar *name);
279 void glAttachShader(GLuint program, GLuint shader);
280 void glStencilMaskSeparate(GLenum face, GLuint mask);
281 void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
282 void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
283 void glDrawBuffers(GLsizei n, const GLenum *bufs);
284 void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
285
286 // OpenGL 2.1 core functions
287 void glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
288 void glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
289 void glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
290 void glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
291 void glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
292 void glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
293
294 // OpenGL 3.0 core functions
295 GLboolean glIsVertexArray(GLuint array);
296 void glGenVertexArrays(GLsizei n, GLuint *arrays);
297 void glDeleteVertexArrays(GLsizei n, const GLuint *arrays);
298 void glBindVertexArray(GLuint array);
299 void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
300 void * glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
301 void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
302 void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
303 void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
304 void glGenerateMipmap(GLenum target);
305 void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params);
306 void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
307 void glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
308 void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
309 void glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
310 GLenum glCheckFramebufferStatus(GLenum target);
311 void glGenFramebuffers(GLsizei n, GLuint *framebuffers);
312 void glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers);
313 void glBindFramebuffer(GLenum target, GLuint framebuffer);
314 GLboolean glIsFramebuffer(GLuint framebuffer);
315 void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params);
316 void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
317 void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers);
318 void glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers);
319 void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
320 GLboolean glIsRenderbuffer(GLuint renderbuffer);
321 const GLubyte * glGetStringi(GLenum name, GLuint index);
322 void glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
323 void glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value);
324 void glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value);
325 void glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value);
326 void glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params);
327 void glGetTexParameterIiv(GLenum target, GLenum pname, GLint *params);
328 void glTexParameterIuiv(GLenum target, GLenum pname, const GLuint *params);
329 void glTexParameterIiv(GLenum target, GLenum pname, const GLint *params);
330 void glUniform4uiv(GLint location, GLsizei count, const GLuint *value);
331 void glUniform3uiv(GLint location, GLsizei count, const GLuint *value);
332 void glUniform2uiv(GLint location, GLsizei count, const GLuint *value);
333 void glUniform1uiv(GLint location, GLsizei count, const GLuint *value);
334 void glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
335 void glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
336 void glUniform2ui(GLint location, GLuint v0, GLuint v1);
337 void glUniform1ui(GLint location, GLuint v0);
338 GLint glGetFragDataLocation(GLuint program, const GLchar *name);
339 void glBindFragDataLocation(GLuint program, GLuint color, const GLchar *name);
340 void glGetUniformuiv(GLuint program, GLint location, GLuint *params);
341 void glVertexAttribI4usv(GLuint index, const GLushort *v);
342 void glVertexAttribI4ubv(GLuint index, const GLubyte *v);
343 void glVertexAttribI4sv(GLuint index, const GLshort *v);
344 void glVertexAttribI4bv(GLuint index, const GLbyte *v);
345 void glVertexAttribI4uiv(GLuint index, const GLuint *v);
346 void glVertexAttribI3uiv(GLuint index, const GLuint *v);
347 void glVertexAttribI2uiv(GLuint index, const GLuint *v);
348 void glVertexAttribI1uiv(GLuint index, const GLuint *v);
349 void glVertexAttribI4iv(GLuint index, const GLint *v);
350 void glVertexAttribI3iv(GLuint index, const GLint *v);
351 void glVertexAttribI2iv(GLuint index, const GLint *v);
352 void glVertexAttribI1iv(GLuint index, const GLint *v);
353 void glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
354 void glVertexAttribI3ui(GLuint index, GLuint x, GLuint y, GLuint z);
355 void glVertexAttribI2ui(GLuint index, GLuint x, GLuint y);
356 void glVertexAttribI1ui(GLuint index, GLuint x);
357 void glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
358 void glVertexAttribI3i(GLuint index, GLint x, GLint y, GLint z);
359 void glVertexAttribI2i(GLuint index, GLint x, GLint y);
360 void glVertexAttribI1i(GLuint index, GLint x);
361 void glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params);
362 void glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params);
363 void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
364 void glEndConditionalRender();
365 void glBeginConditionalRender(GLuint id, GLenum mode);
366 void glClampColor(GLenum target, GLenum clamp);
367 void glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
368 void glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode);
369 void glBindBufferBase(GLenum target, GLuint index, GLuint buffer);
370 void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
371 void glEndTransformFeedback();
372 void glBeginTransformFeedback(GLenum primitiveMode);
373 GLboolean glIsEnabledi(GLenum target, GLuint index);
374 void glDisablei(GLenum target, GLuint index);
375 void glEnablei(GLenum target, GLuint index);
376 void glGetIntegeri_v(GLenum target, GLuint index, GLint *data);
377 void glGetBooleani_v(GLenum target, GLuint index, GLboolean *data);
378 void glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
379
380 // OpenGL 3.1 core functions
381 void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
382 void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
383 void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
384 GLuint glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName);
385 void glGetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
386 void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
387 void glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar *const *uniformNames, GLuint *uniformIndices);
388 void glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
389 void glPrimitiveRestartIndex(GLuint index);
390 void glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer);
391 void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
392 void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
393
394 // OpenGL 3.2 core functions
395 void glSampleMaski(GLuint maskNumber, GLbitfield mask);
396 void glGetMultisamplefv(GLenum pname, GLuint index, GLfloat *val);
397 void glTexImage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
398 void glTexImage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
399 void glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level);
400 void glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params);
401 void glGetInteger64i_v(GLenum target, GLuint index, GLint64 *data);
402 void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
403 void glGetInteger64v(GLenum pname, GLint64 *data);
404 void glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
405 GLenum glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
406 void glDeleteSync(GLsync sync);
407 GLboolean glIsSync(GLsync sync);
408 GLsync glFenceSync(GLenum condition, GLbitfield flags);
409 void glProvokingVertex(GLenum mode);
410 void glMultiDrawElementsBaseVertex(GLenum mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei drawcount, const GLint *basevertex);
411 void glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
412 void glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
413 void glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
414
415 // OpenGL 3.3 core functions
416 void glVertexAttribP4uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
417 void glVertexAttribP4ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
418 void glVertexAttribP3uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
419 void glVertexAttribP3ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
420 void glVertexAttribP2uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
421 void glVertexAttribP2ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
422 void glVertexAttribP1uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
423 void glVertexAttribP1ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
424 void glVertexAttribDivisor(GLuint index, GLuint divisor);
425 void glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params);
426 void glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params);
427 void glQueryCounter(GLuint id, GLenum target);
428 void glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params);
429 void glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params);
430 void glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params);
431 void glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params);
432 void glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *param);
433 void glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *param);
434 void glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *param);
435 void glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
436 void glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *param);
437 void glSamplerParameteri(GLuint sampler, GLenum pname, GLint param);
438 void glBindSampler(GLuint unit, GLuint sampler);
439 GLboolean glIsSampler(GLuint sampler);
440 void glDeleteSamplers(GLsizei count, const GLuint *samplers);
441 void glGenSamplers(GLsizei count, GLuint *samplers);
442 GLint glGetFragDataIndex(GLuint program, const GLchar *name);
443 void glBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
444
445 // OpenGL 4.0 core functions
446 void glGetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint *params);
447 void glEndQueryIndexed(GLenum target, GLuint index);
448 void glBeginQueryIndexed(GLenum target, GLuint index, GLuint id);
449 void glDrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream);
450 void glDrawTransformFeedback(GLenum mode, GLuint id);
451 void glResumeTransformFeedback();
452 void glPauseTransformFeedback();
453 GLboolean glIsTransformFeedback(GLuint id);
454 void glGenTransformFeedbacks(GLsizei n, GLuint *ids);
455 void glDeleteTransformFeedbacks(GLsizei n, const GLuint *ids);
456 void glBindTransformFeedback(GLenum target, GLuint id);
457 void glPatchParameterfv(GLenum pname, const GLfloat *values);
458 void glPatchParameteri(GLenum pname, GLint value);
459 void glGetProgramStageiv(GLuint program, GLenum shadertype, GLenum pname, GLint *values);
460 void glGetUniformSubroutineuiv(GLenum shadertype, GLint location, GLuint *params);
461 void glUniformSubroutinesuiv(GLenum shadertype, GLsizei count, const GLuint *indices);
462 void glGetActiveSubroutineName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
463 void glGetActiveSubroutineUniformName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
464 void glGetActiveSubroutineUniformiv(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
465 GLuint glGetSubroutineIndex(GLuint program, GLenum shadertype, const GLchar *name);
466 GLint glGetSubroutineUniformLocation(GLuint program, GLenum shadertype, const GLchar *name);
467 void glGetUniformdv(GLuint program, GLint location, GLdouble *params);
468 void glUniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
469 void glUniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
470 void glUniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
471 void glUniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
472 void glUniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
473 void glUniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
474 void glUniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
475 void glUniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
476 void glUniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
477 void glUniform4dv(GLint location, GLsizei count, const GLdouble *value);
478 void glUniform3dv(GLint location, GLsizei count, const GLdouble *value);
479 void glUniform2dv(GLint location, GLsizei count, const GLdouble *value);
480 void glUniform1dv(GLint location, GLsizei count, const GLdouble *value);
481 void glUniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
482 void glUniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z);
483 void glUniform2d(GLint location, GLdouble x, GLdouble y);
484 void glUniform1d(GLint location, GLdouble x);
485 void glDrawElementsIndirect(GLenum mode, GLenum type, const void *indirect);
486 void glDrawArraysIndirect(GLenum mode, const void *indirect);
487 void glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
488 void glBlendFunci(GLuint buf, GLenum src, GLenum dst);
489 void glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
490 void glBlendEquationi(GLuint buf, GLenum mode);
491 void glMinSampleShading(GLfloat value);
492
493 // OpenGL 4.1 core functions
494 void glGetDoublei_v(GLenum target, GLuint index, GLdouble *data);
495 void glGetFloati_v(GLenum target, GLuint index, GLfloat *data);
496 void glDepthRangeIndexed(GLuint index, GLdouble n, GLdouble f);
497 void glDepthRangeArrayv(GLuint first, GLsizei count, const GLdouble *v);
498 void glScissorIndexedv(GLuint index, const GLint *v);
499 void glScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
500 void glScissorArrayv(GLuint first, GLsizei count, const GLint *v);
501 void glViewportIndexedfv(GLuint index, const GLfloat *v);
502 void glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
503 void glViewportArrayv(GLuint first, GLsizei count, const GLfloat *v);
504 void glGetVertexAttribLdv(GLuint index, GLenum pname, GLdouble *params);
505 void glVertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
506 void glVertexAttribL4dv(GLuint index, const GLdouble *v);
507 void glVertexAttribL3dv(GLuint index, const GLdouble *v);
508 void glVertexAttribL2dv(GLuint index, const GLdouble *v);
509 void glVertexAttribL1dv(GLuint index, const GLdouble *v);
510 void glVertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
511 void glVertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
512 void glVertexAttribL2d(GLuint index, GLdouble x, GLdouble y);
513 void glVertexAttribL1d(GLuint index, GLdouble x);
514 void glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
515 void glValidateProgramPipeline(GLuint pipeline);
516 void glProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
517 void glProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
518 void glProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
519 void glProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
520 void glProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
521 void glProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
522 void glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
523 void glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
524 void glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
525 void glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
526 void glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
527 void glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
528 void glProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
529 void glProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
530 void glProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
531 void glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
532 void glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
533 void glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
534 void glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
535 void glProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
536 void glProgramUniform4dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
537 void glProgramUniform4d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
538 void glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
539 void glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
540 void glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value);
541 void glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
542 void glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
543 void glProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
544 void glProgramUniform3dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
545 void glProgramUniform3d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
546 void glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
547 void glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
548 void glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value);
549 void glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
550 void glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
551 void glProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1);
552 void glProgramUniform2dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
553 void glProgramUniform2d(GLuint program, GLint location, GLdouble v0, GLdouble v1);
554 void glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
555 void glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1);
556 void glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value);
557 void glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1);
558 void glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
559 void glProgramUniform1ui(GLuint program, GLint location, GLuint v0);
560 void glProgramUniform1dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
561 void glProgramUniform1d(GLuint program, GLint location, GLdouble v0);
562 void glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
563 void glProgramUniform1f(GLuint program, GLint location, GLfloat v0);
564 void glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint *value);
565 void glProgramUniform1i(GLuint program, GLint location, GLint v0);
566 void glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params);
567 GLboolean glIsProgramPipeline(GLuint pipeline);
568 void glGenProgramPipelines(GLsizei n, GLuint *pipelines);
569 void glDeleteProgramPipelines(GLsizei n, const GLuint *pipelines);
570 void glBindProgramPipeline(GLuint pipeline);
571 GLuint glCreateShaderProgramv(GLenum type, GLsizei count, const GLchar* const *strings);
572 void glActiveShaderProgram(GLuint pipeline, GLuint program);
573 void glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
574 void glProgramParameteri(GLuint program, GLenum pname, GLint value);
575 void glProgramBinary(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
576 void glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
577 void glClearDepthf(GLfloat dd);
578 void glDepthRangef(GLfloat n, GLfloat f);
579 void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
580 void glShaderBinary(GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
581 void glReleaseShaderCompiler();
582
583 // OpenGL 4.2 core functions
584 void glDrawTransformFeedbackStreamInstanced(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
585 void glDrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei instancecount);
586 void glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
587 void glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
588 void glTexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
589 void glMemoryBarrier(GLbitfield barriers);
590 void glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
591 void glGetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
592 void glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
593 void glDrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
594 void glDrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
595 void glDrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
596
597 // OpenGL 4.3 core functions
598 void glGetObjectPtrLabel(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
599 void glObjectPtrLabel(const void *ptr, GLsizei length, const GLchar *label);
600 void glGetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
601 void glObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
602 void glPopDebugGroup();
603 void glPushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar *message);
604 GLuint glGetDebugMessageLog(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
605 void glDebugMessageCallback(GLDEBUGPROC callback, const void *userParam);
606 void glDebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
607 void glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
608 void glVertexBindingDivisor(GLuint bindingindex, GLuint divisor);
609 void glVertexAttribBinding(GLuint attribindex, GLuint bindingindex);
610 void glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
611 void glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
612 void glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
613 void glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
614 void glTextureView(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
615 void glTexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
616 void glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
617 void glTexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
618 void glShaderStorageBlockBinding(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
619 GLint glGetProgramResourceLocationIndex(GLuint program, GLenum programInterface, const GLchar *name);
620 GLint glGetProgramResourceLocation(GLuint program, GLenum programInterface, const GLchar *name);
621 void glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
622 void glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
623 GLuint glGetProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar *name);
624 void glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint *params);
625 void glMultiDrawElementsIndirect(GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride);
626 void glMultiDrawArraysIndirect(GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride);
627 void glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
628 void glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments);
629 void glInvalidateBufferData(GLuint buffer);
630 void glInvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length);
631 void glInvalidateTexImage(GLuint texture, GLint level);
632 void glInvalidateTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
633 void glGetInternalformati64v(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params);
634 void glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params);
635 void glFramebufferParameteri(GLenum target, GLenum pname, GLint param);
636 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);
637 void glDispatchComputeIndirect(GLintptr indirect);
638 void glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
639 void glClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
640 void glClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
641
642 // OpenGL 4.4 core functions
643 void glBindVertexBuffers(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
644 void glBindImageTextures(GLuint first, GLsizei count, const GLuint *textures);
645 void glBindSamplers(GLuint first, GLsizei count, const GLuint *samplers);
646 void glBindTextures(GLuint first, GLsizei count, const GLuint *textures);
647 void glBindBuffersRange(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
648 void glBindBuffersBase(GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
649 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);
650 void glClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
651 void glBufferStorage(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
652
653private:
654 friend class QOpenGLVersionFunctionsFactory;
655
656 static bool isContextCompatible(QOpenGLContext *context);
657 static QOpenGLVersionProfile versionProfile();
658
659 QOpenGLFunctions_1_0_CoreBackend* d_1_0_Core;
660 QOpenGLFunctions_1_1_CoreBackend* d_1_1_Core;
661 QOpenGLFunctions_1_2_CoreBackend* d_1_2_Core;
662 QOpenGLFunctions_1_3_CoreBackend* d_1_3_Core;
663 QOpenGLFunctions_1_4_CoreBackend* d_1_4_Core;
664 QOpenGLFunctions_1_5_CoreBackend* d_1_5_Core;
665 QOpenGLFunctions_2_0_CoreBackend* d_2_0_Core;
666 QOpenGLFunctions_2_1_CoreBackend* d_2_1_Core;
667 QOpenGLFunctions_3_0_CoreBackend* d_3_0_Core;
668 QOpenGLFunctions_3_1_CoreBackend* d_3_1_Core;
669 QOpenGLFunctions_3_2_CoreBackend* d_3_2_Core;
670 QOpenGLFunctions_3_3_CoreBackend* d_3_3_Core;
671 QOpenGLFunctions_4_0_CoreBackend* d_4_0_Core;
672 QOpenGLFunctions_4_1_CoreBackend* d_4_1_Core;
673 QOpenGLFunctions_4_2_CoreBackend* d_4_2_Core;
674 QOpenGLFunctions_4_3_CoreBackend* d_4_3_Core;
675 QOpenGLFunctions_4_4_CoreBackend* d_4_4_Core;
676};
677
678// OpenGL 1.0 core functions
679inline void QOpenGLFunctions_4_4_Core::glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
680{
681 d_1_0_Core->f.Viewport(x, y, width, height);
682}
683
684inline void QOpenGLFunctions_4_4_Core::glDepthRange(GLdouble nearVal, GLdouble farVal)
685{
686 d_1_0_Core->f.DepthRange(nearVal, farVal);
687}
688
689inline GLboolean QOpenGLFunctions_4_4_Core::glIsEnabled(GLenum cap)
690{
691 return d_1_0_Core->f.IsEnabled(cap);
692}
693
694inline void QOpenGLFunctions_4_4_Core::glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params)
695{
696 d_1_0_Core->f.GetTexLevelParameteriv(target, level, pname, params);
697}
698
699inline void QOpenGLFunctions_4_4_Core::glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params)
700{
701 d_1_0_Core->f.GetTexLevelParameterfv(target, level, pname, params);
702}
703
704inline void QOpenGLFunctions_4_4_Core::glGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
705{
706 d_1_0_Core->f.GetTexParameteriv(target, pname, params);
707}
708
709inline void QOpenGLFunctions_4_4_Core::glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
710{
711 d_1_0_Core->f.GetTexParameterfv(target, pname, params);
712}
713
714inline void QOpenGLFunctions_4_4_Core::glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, void *pixels)
715{
716 d_1_0_Core->f.GetTexImage(target, level, format, type, pixels);
717}
718
719inline const GLubyte * QOpenGLFunctions_4_4_Core::glGetString(GLenum name)
720{
721 return d_1_0_Core->f.GetString(name);
722}
723
724inline void QOpenGLFunctions_4_4_Core::glGetIntegerv(GLenum pname, GLint *data)
725{
726 d_1_0_Core->f.GetIntegerv(pname, data);
727}
728
729inline void QOpenGLFunctions_4_4_Core::glGetFloatv(GLenum pname, GLfloat *data)
730{
731 d_1_0_Core->f.GetFloatv(pname, data);
732}
733
734inline GLenum QOpenGLFunctions_4_4_Core::glGetError()
735{
736 return d_1_0_Core->f.GetError();
737}
738
739inline void QOpenGLFunctions_4_4_Core::glGetDoublev(GLenum pname, GLdouble *data)
740{
741 d_1_0_Core->f.GetDoublev(pname, data);
742}
743
744inline void QOpenGLFunctions_4_4_Core::glGetBooleanv(GLenum pname, GLboolean *data)
745{
746 d_1_0_Core->f.GetBooleanv(pname, data);
747}
748
749inline void QOpenGLFunctions_4_4_Core::glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels)
750{
751 d_1_0_Core->f.ReadPixels(x, y, width, height, format, type, pixels);
752}
753
754inline void QOpenGLFunctions_4_4_Core::glReadBuffer(GLenum src)
755{
756 d_1_0_Core->f.ReadBuffer(src);
757}
758
759inline void QOpenGLFunctions_4_4_Core::glPixelStorei(GLenum pname, GLint param)
760{
761 d_1_0_Core->f.PixelStorei(pname, param);
762}
763
764inline void QOpenGLFunctions_4_4_Core::glPixelStoref(GLenum pname, GLfloat param)
765{
766 d_1_0_Core->f.PixelStoref(pname, param);
767}
768
769inline void QOpenGLFunctions_4_4_Core::glDepthFunc(GLenum func)
770{
771 d_1_0_Core->f.DepthFunc(func);
772}
773
774inline void QOpenGLFunctions_4_4_Core::glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
775{
776 d_1_0_Core->f.StencilOp(fail, zfail, zpass);
777}
778
779inline void QOpenGLFunctions_4_4_Core::glStencilFunc(GLenum func, GLint ref, GLuint mask)
780{
781 d_1_0_Core->f.StencilFunc(func, ref, mask);
782}
783
784inline void QOpenGLFunctions_4_4_Core::glLogicOp(GLenum opcode)
785{
786 d_1_0_Core->f.LogicOp(opcode);
787}
788
789inline void QOpenGLFunctions_4_4_Core::glBlendFunc(GLenum sfactor, GLenum dfactor)
790{
791 d_1_0_Core->f.BlendFunc(sfactor, dfactor);
792}
793
794inline void QOpenGLFunctions_4_4_Core::glFlush()
795{
796 d_1_0_Core->f.Flush();
797}
798
799inline void QOpenGLFunctions_4_4_Core::glFinish()
800{
801 d_1_0_Core->f.Finish();
802}
803
804inline void QOpenGLFunctions_4_4_Core::glEnable(GLenum cap)
805{
806 d_1_0_Core->f.Enable(cap);
807}
808
809inline void QOpenGLFunctions_4_4_Core::glDisable(GLenum cap)
810{
811 d_1_0_Core->f.Disable(cap);
812}
813
814inline void QOpenGLFunctions_4_4_Core::glDepthMask(GLboolean flag)
815{
816 d_1_0_Core->f.DepthMask(flag);
817}
818
819inline void QOpenGLFunctions_4_4_Core::glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
820{
821 d_1_0_Core->f.ColorMask(red, green, blue, alpha);
822}
823
824inline void QOpenGLFunctions_4_4_Core::glStencilMask(GLuint mask)
825{
826 d_1_0_Core->f.StencilMask(mask);
827}
828
829inline void QOpenGLFunctions_4_4_Core::glClearDepth(GLdouble depth)
830{
831 d_1_0_Core->f.ClearDepth(depth);
832}
833
834inline void QOpenGLFunctions_4_4_Core::glClearStencil(GLint s)
835{
836 d_1_0_Core->f.ClearStencil(s);
837}
838
839inline void QOpenGLFunctions_4_4_Core::glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
840{
841 d_1_0_Core->f.ClearColor(red, green, blue, alpha);
842}
843
844inline void QOpenGLFunctions_4_4_Core::glClear(GLbitfield mask)
845{
846 d_1_0_Core->f.Clear(mask);
847}
848
849inline void QOpenGLFunctions_4_4_Core::glDrawBuffer(GLenum buf)
850{
851 d_1_0_Core->f.DrawBuffer(buf);
852}
853
854inline void QOpenGLFunctions_4_4_Core::glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)
855{
856 d_1_0_Core->f.TexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
857}
858
859inline void QOpenGLFunctions_4_4_Core::glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels)
860{
861 d_1_0_Core->f.TexImage1D(target, level, internalformat, width, border, format, type, pixels);
862}
863
864inline void QOpenGLFunctions_4_4_Core::glTexParameteriv(GLenum target, GLenum pname, const GLint *params)
865{
866 d_1_0_Core->f.TexParameteriv(target, pname, params);
867}
868
869inline void QOpenGLFunctions_4_4_Core::glTexParameteri(GLenum target, GLenum pname, GLint param)
870{
871 d_1_0_Core->f.TexParameteri(target, pname, param);
872}
873
874inline void QOpenGLFunctions_4_4_Core::glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
875{
876 d_1_0_Core->f.TexParameterfv(target, pname, params);
877}
878
879inline void QOpenGLFunctions_4_4_Core::glTexParameterf(GLenum target, GLenum pname, GLfloat param)
880{
881 d_1_0_Core->f.TexParameterf(target, pname, param);
882}
883
884inline void QOpenGLFunctions_4_4_Core::glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
885{
886 d_1_0_Core->f.Scissor(x, y, width, height);
887}
888
889inline void QOpenGLFunctions_4_4_Core::glPolygonMode(GLenum face, GLenum mode)
890{
891 d_1_0_Core->f.PolygonMode(face, mode);
892}
893
894inline void QOpenGLFunctions_4_4_Core::glPointSize(GLfloat size)
895{
896 d_1_0_Core->f.PointSize(size);
897}
898
899inline void QOpenGLFunctions_4_4_Core::glLineWidth(GLfloat width)
900{
901 d_1_0_Core->f.LineWidth(width);
902}
903
904inline void QOpenGLFunctions_4_4_Core::glHint(GLenum target, GLenum mode)
905{
906 d_1_0_Core->f.Hint(target, mode);
907}
908
909inline void QOpenGLFunctions_4_4_Core::glFrontFace(GLenum mode)
910{
911 d_1_0_Core->f.FrontFace(mode);
912}
913
914inline void QOpenGLFunctions_4_4_Core::glCullFace(GLenum mode)
915{
916 d_1_0_Core->f.CullFace(mode);
917}
918
919
920// OpenGL 1.1 core functions
921inline GLboolean QOpenGLFunctions_4_4_Core::glIsTexture(GLuint texture)
922{
923 return d_1_1_Core->f.IsTexture(texture);
924}
925
926inline void QOpenGLFunctions_4_4_Core::glGenTextures(GLsizei n, GLuint *textures)
927{
928 d_1_1_Core->f.GenTextures(n, textures);
929}
930
931inline void QOpenGLFunctions_4_4_Core::glDeleteTextures(GLsizei n, const GLuint *textures)
932{
933 d_1_1_Core->f.DeleteTextures(n, textures);
934}
935
936inline void QOpenGLFunctions_4_4_Core::glBindTexture(GLenum target, GLuint texture)
937{
938 d_1_1_Core->f.BindTexture(target, texture);
939}
940
941inline void QOpenGLFunctions_4_4_Core::glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
942{
943 d_1_1_Core->f.TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
944}
945
946inline void QOpenGLFunctions_4_4_Core::glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)
947{
948 d_1_1_Core->f.TexSubImage1D(target, level, xoffset, width, format, type, pixels);
949}
950
951inline void QOpenGLFunctions_4_4_Core::glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
952{
953 d_1_1_Core->f.CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
954}
955
956inline void QOpenGLFunctions_4_4_Core::glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
957{
958 d_1_1_Core->f.CopyTexSubImage1D(target, level, xoffset, x, y, width);
959}
960
961inline void QOpenGLFunctions_4_4_Core::glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
962{
963 d_1_1_Core->f.CopyTexImage2D(target, level, internalformat, x, y, width, height, border);
964}
965
966inline void QOpenGLFunctions_4_4_Core::glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
967{
968 d_1_1_Core->f.CopyTexImage1D(target, level, internalformat, x, y, width, border);
969}
970
971inline void QOpenGLFunctions_4_4_Core::glPolygonOffset(GLfloat factor, GLfloat units)
972{
973 d_1_1_Core->f.PolygonOffset(factor, units);
974}
975
976inline void QOpenGLFunctions_4_4_Core::glDrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices)
977{
978 d_1_1_Core->f.DrawElements(mode, count, type, indices);
979}
980
981inline void QOpenGLFunctions_4_4_Core::glDrawArrays(GLenum mode, GLint first, GLsizei count)
982{
983 d_1_1_Core->f.DrawArrays(mode, first, count);
984}
985
986
987// OpenGL 1.2 core functions
988inline void QOpenGLFunctions_4_4_Core::glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
989{
990 d_1_2_Core->f.BlendColor(red, green, blue, alpha);
991}
992
993inline void QOpenGLFunctions_4_4_Core::glBlendEquation(GLenum mode)
994{
995 d_1_2_Core->f.BlendEquation(mode);
996}
997
998inline void QOpenGLFunctions_4_4_Core::glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
999{
1000 d_1_2_Core->f.CopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
1001}
1002
1003inline void QOpenGLFunctions_4_4_Core::glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
1004{
1005 d_1_2_Core->f.TexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
1006}
1007
1008inline void QOpenGLFunctions_4_4_Core::glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
1009{
1010 d_1_2_Core->f.TexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels);
1011}
1012
1013inline void QOpenGLFunctions_4_4_Core::glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)
1014{
1015 d_1_2_Core->f.DrawRangeElements(mode, start, end, count, type, indices);
1016}
1017
1018
1019// OpenGL 1.3 core functions
1020inline void QOpenGLFunctions_4_4_Core::glGetCompressedTexImage(GLenum target, GLint level, void *img)
1021{
1022 d_1_3_Core->f.GetCompressedTexImage(target, level, img);
1023}
1024
1025inline void QOpenGLFunctions_4_4_Core::glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
1026{
1027 d_1_3_Core->f.CompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
1028}
1029
1030inline void QOpenGLFunctions_4_4_Core::glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)
1031{
1032 d_1_3_Core->f.CompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
1033}
1034
1035inline void QOpenGLFunctions_4_4_Core::glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
1036{
1037 d_1_3_Core->f.CompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
1038}
1039
1040inline void QOpenGLFunctions_4_4_Core::glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data)
1041{
1042 d_1_3_Core->f.CompressedTexImage1D(target, level, internalformat, width, border, imageSize, data);
1043}
1044
1045inline void QOpenGLFunctions_4_4_Core::glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)
1046{
1047 d_1_3_Core->f.CompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
1048}
1049
1050inline void QOpenGLFunctions_4_4_Core::glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
1051{
1052 d_1_3_Core->f.CompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
1053}
1054
1055inline void QOpenGLFunctions_4_4_Core::glSampleCoverage(GLfloat value, GLboolean invert)
1056{
1057 d_1_3_Core->f.SampleCoverage(value, invert);
1058}
1059
1060inline void QOpenGLFunctions_4_4_Core::glActiveTexture(GLenum texture)
1061{
1062 d_1_3_Core->f.ActiveTexture(texture);
1063}
1064
1065
1066// OpenGL 1.4 core functions
1067inline void QOpenGLFunctions_4_4_Core::glPointParameteriv(GLenum pname, const GLint *params)
1068{
1069 d_1_4_Core->f.PointParameteriv(pname, params);
1070}
1071
1072inline void QOpenGLFunctions_4_4_Core::glPointParameteri(GLenum pname, GLint param)
1073{
1074 d_1_4_Core->f.PointParameteri(pname, param);
1075}
1076
1077inline void QOpenGLFunctions_4_4_Core::glPointParameterfv(GLenum pname, const GLfloat *params)
1078{
1079 d_1_4_Core->f.PointParameterfv(pname, params);
1080}
1081
1082inline void QOpenGLFunctions_4_4_Core::glPointParameterf(GLenum pname, GLfloat param)
1083{
1084 d_1_4_Core->f.PointParameterf(pname, param);
1085}
1086
1087inline void QOpenGLFunctions_4_4_Core::glMultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei drawcount)
1088{
1089 d_1_4_Core->f.MultiDrawElements(mode, count, type, indices, drawcount);
1090}
1091
1092inline void QOpenGLFunctions_4_4_Core::glMultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount)
1093{
1094 d_1_4_Core->f.MultiDrawArrays(mode, first, count, drawcount);
1095}
1096
1097inline void QOpenGLFunctions_4_4_Core::glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
1098{
1099 d_1_4_Core->f.BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
1100}
1101
1102
1103// OpenGL 1.5 core functions
1104inline void QOpenGLFunctions_4_4_Core::glGetBufferPointerv(GLenum target, GLenum pname, void * *params)
1105{
1106 d_1_5_Core->f.GetBufferPointerv(target, pname, params);
1107}
1108
1109inline void QOpenGLFunctions_4_4_Core::glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
1110{
1111 d_1_5_Core->f.GetBufferParameteriv(target, pname, params);
1112}
1113
1114inline GLboolean QOpenGLFunctions_4_4_Core::glUnmapBuffer(GLenum target)
1115{
1116 return d_1_5_Core->f.UnmapBuffer(target);
1117}
1118
1119inline void * QOpenGLFunctions_4_4_Core::glMapBuffer(GLenum target, GLenum access)
1120{
1121 return d_1_5_Core->f.MapBuffer(target, access);
1122}
1123
1124inline void QOpenGLFunctions_4_4_Core::glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, void *data)
1125{
1126 d_1_5_Core->f.GetBufferSubData(target, offset, size, data);
1127}
1128
1129inline void QOpenGLFunctions_4_4_Core::glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void *data)
1130{
1131 d_1_5_Core->f.BufferSubData(target, offset, size, data);
1132}
1133
1134inline void QOpenGLFunctions_4_4_Core::glBufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage)
1135{
1136 d_1_5_Core->f.BufferData(target, size, data, usage);
1137}
1138
1139inline GLboolean QOpenGLFunctions_4_4_Core::glIsBuffer(GLuint buffer)
1140{
1141 return d_1_5_Core->f.IsBuffer(buffer);
1142}
1143
1144inline void QOpenGLFunctions_4_4_Core::glGenBuffers(GLsizei n, GLuint *buffers)
1145{
1146 d_1_5_Core->f.GenBuffers(n, buffers);
1147}
1148
1149inline void