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