34class Q_OPENGL_EXPORT QOpenGLFunctions_4_2_Core :
public QAbstractOpenGLFunctions
37 QOpenGLFunctions_4_2_Core();
38 ~QOpenGLFunctions_4_2_Core();
40 bool initializeOpenGLFunctions() override;
43 void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
44 void glDepthRange(GLdouble nearVal, GLdouble farVal);
45 GLboolean glIsEnabled(GLenum cap);
46 void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
47 void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
48 void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params);
49 void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
50 void glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
51 const GLubyte * glGetString(GLenum name);
52 void glGetIntegerv(GLenum pname, GLint *params);
53 void glGetFloatv(GLenum pname, GLfloat *params);
55 void glGetDoublev(GLenum pname, GLdouble *params);
56 void glGetBooleanv(GLenum pname, GLboolean *params);
57 void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
58 void glReadBuffer(GLenum mode);
59 void glPixelStorei(GLenum pname, GLint param);
60 void glPixelStoref(GLenum pname, GLfloat param);
61 void glDepthFunc(GLenum func);
62 void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
63 void glStencilFunc(GLenum func, GLint ref, GLuint mask);
64 void glLogicOp(GLenum opcode);
65 void glBlendFunc(GLenum sfactor, GLenum dfactor);
68 void glEnable(GLenum cap);
69 void glDisable(GLenum cap);
70 void glDepthMask(GLboolean flag);
71 void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
72 void glStencilMask(GLuint mask);
73 void glClearDepth(GLdouble depth);
74 void glClearStencil(GLint s);
75 void glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
76 void glClear(GLbitfield mask);
77 void glDrawBuffer(GLenum mode);
78 void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type,
const GLvoid *pixels);
79 void glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type,
const GLvoid *pixels);
80 void glTexParameteriv(GLenum target, GLenum pname,
const GLint *params);
81 void glTexParameteri(GLenum target, GLenum pname, GLint param);
82 void glTexParameterfv(GLenum target, GLenum pname,
const GLfloat *params);
83 void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
84 void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
85 void glPolygonMode(GLenum face, GLenum mode);
86 void glPointSize(GLfloat size);
87 void glLineWidth(GLfloat width);
88 void glHint(GLenum target, GLenum mode);
89 void glFrontFace(GLenum mode);
90 void glCullFace(GLenum mode);
93 GLboolean glIsTexture(GLuint texture);
94 void glGenTextures(GLsizei n, GLuint *textures);
95 void glDeleteTextures(GLsizei n,
const GLuint *textures);
96 void glBindTexture(GLenum target, GLuint texture);
97 void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type,
const GLvoid *pixels);
98 void glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type,
const GLvoid *pixels);
99 void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
100 void glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
101 void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
102 void glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
103 void glPolygonOffset(GLfloat factor, GLfloat units);
104 void glDrawElements(GLenum mode, GLsizei count, GLenum type,
const GLvoid *indices);
105 void glDrawArrays(GLenum mode, GLint first, GLsizei count);
108 void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
109 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);
110 void glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type,
const GLvoid *pixels);
111 void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type,
const GLvoid *indices);
112 void glBlendEquation(GLenum mode);
113 void glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
116 void glGetCompressedTexImage(GLenum target, GLint level, GLvoid *img);
117 void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize,
const GLvoid *data);
118 void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize,
const GLvoid *data);
119 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);
120 void glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize,
const GLvoid *data);
121 void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize,
const GLvoid *data);
122 void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize,
const GLvoid *data);
123 void glSampleCoverage(GLfloat value, GLboolean invert);
124 void glActiveTexture(GLenum texture);
127 void glPointParameteriv(GLenum pname,
const GLint *params);
128 void glPointParameteri(GLenum pname, GLint param);
129 void glPointParameterfv(GLenum pname,
const GLfloat *params);
130 void glPointParameterf(GLenum pname, GLfloat param);
131 void glMultiDrawElements(GLenum mode,
const GLsizei *count, GLenum type,
const GLvoid*
const *indices, GLsizei drawcount);
132 void glMultiDrawArrays(GLenum mode,
const GLint *first,
const GLsizei *count, GLsizei drawcount);
133 void glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
136 void glGetBufferPointerv(GLenum target, GLenum pname, GLvoid* *params);
137 void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params);
138 GLboolean glUnmapBuffer(GLenum target);
139 GLvoid* glMapBuffer(GLenum target, GLenum access);
140 void glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
141 void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size,
const GLvoid *data);
142 void glBufferData(GLenum target, GLsizeiptr size,
const GLvoid *data, GLenum usage);
143 GLboolean glIsBuffer(GLuint buffer);
144 void glGenBuffers(GLsizei n, GLuint *buffers);
145 void glDeleteBuffers(GLsizei n,
const GLuint *buffers);
146 void glBindBuffer(GLenum target, GLuint buffer);
147 void glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
148 void glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params);
149 void glGetQueryiv(GLenum target, GLenum pname, GLint *params);
150 void glEndQuery(GLenum target);
151 void glBeginQuery(GLenum target, GLuint id);
152 GLboolean glIsQuery(GLuint id);
153 void glDeleteQueries(GLsizei n,
const GLuint *ids);
154 void glGenQueries(GLsizei n, GLuint *ids);
157 void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride,
const GLvoid *pointer);
158 void glValidateProgram(GLuint program);
159 void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
160 void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
161 void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
162 void glUniform4iv(GLint location, GLsizei count,
const GLint *value);
163 void glUniform3iv(GLint location, GLsizei count,
const GLint *value);
164 void glUniform2iv(GLint location, GLsizei count,
const GLint *value);
165 void glUniform1iv(GLint location, GLsizei count,
const GLint *value);
166 void glUniform4fv(GLint location, GLsizei count,
const GLfloat *value);
167 void glUniform3fv(GLint location, GLsizei count,
const GLfloat *value);
168 void glUniform2fv(GLint location, GLsizei count,
const GLfloat *value);
169 void glUniform1fv(GLint location, GLsizei count,
const GLfloat *value);
170 void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
171 void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2);
172 void glUniform2i(GLint location, GLint v0, GLint v1);
173 void glUniform1i(GLint location, GLint v0);
174 void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
175 void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
176 void glUniform2f(GLint location, GLfloat v0, GLfloat v1);
177 void glUniform1f(GLint location, GLfloat v0);
178 void glUseProgram(GLuint program);
179 void glShaderSource(GLuint shader, GLsizei count,
const GLchar*
const *string,
const GLint *length);
180 void glLinkProgram(GLuint program);
181 GLboolean glIsShader(GLuint shader);
182 GLboolean glIsProgram(GLuint program);
183 void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid* *pointer);
184 void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params);
185 void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params);
186 void glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params);
187 void glGetUniformiv(GLuint program, GLint location, GLint *params);
188 void glGetUniformfv(GLuint program, GLint location, GLfloat *params);
189 GLint glGetUniformLocation(GLuint program,
const GLchar *name);
190 void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
191 void glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
192 void glGetShaderiv(GLuint shader, GLenum pname, GLint *params);
193 void glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
194 void glGetProgramiv(GLuint program, GLenum pname, GLint *params);
195 GLint glGetAttribLocation(GLuint program,
const GLchar *name);
196 void glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
197 void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
198 void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
199 void glEnableVertexAttribArray(GLuint index);
200 void glDisableVertexAttribArray(GLuint index);
201 void glDetachShader(GLuint program, GLuint shader);
202 void glDeleteShader(GLuint shader);
203 void glDeleteProgram(GLuint program);
204 GLuint glCreateShader(GLenum type);
205 GLuint glCreateProgram();
206 void glCompileShader(GLuint shader);
207 void glBindAttribLocation(GLuint program, GLuint index,
const GLchar *name);
208 void glAttachShader(GLuint program, GLuint shader);
209 void glStencilMaskSeparate(GLenum face, GLuint mask);
210 void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
211 void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
212 void glDrawBuffers(GLsizei n,
const GLenum *bufs);
213 void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
216 void glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
217 void glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
218 void glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
219 void glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
220 void glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
221 void glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
224 GLboolean glIsVertexArray(GLuint array);
225 void glGenVertexArrays(GLsizei n, GLuint *arrays);
226 void glDeleteVertexArrays(GLsizei n,
const GLuint *arrays);
227 void glBindVertexArray(GLuint array);
228 void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
229 GLvoid* glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
230 void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
231 void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
232 void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
233 void glGenerateMipmap(GLenum target);
234 void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params);
235 void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
236 void glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
237 void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
238 void glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
239 GLenum glCheckFramebufferStatus(GLenum target);
240 void glGenFramebuffers(GLsizei n, GLuint *framebuffers);
241 void glDeleteFramebuffers(GLsizei n,
const GLuint *framebuffers);
242 void glBindFramebuffer(GLenum target, GLuint framebuffer);
243 GLboolean glIsFramebuffer(GLuint framebuffer);
244 void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params);
245 void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
246 void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers);
247 void glDeleteRenderbuffers(GLsizei n,
const GLuint *renderbuffers);
248 void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
249 GLboolean glIsRenderbuffer(GLuint renderbuffer);
250 const GLubyte * glGetStringi(GLenum name, GLuint index);
251 void glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
252 void glClearBufferfv(GLenum buffer, GLint drawbuffer,
const GLfloat *value);
253 void glClearBufferuiv(GLenum buffer, GLint drawbuffer,
const GLuint *value);
254 void glClearBufferiv(GLenum buffer, GLint drawbuffer,
const GLint *value);
255 void glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params);
256 void glGetTexParameterIiv(GLenum target, GLenum pname, GLint *params);
257 void glTexParameterIuiv(GLenum target, GLenum pname,
const GLuint *params);
258 void glTexParameterIiv(GLenum target, GLenum pname,
const GLint *params);
259 void glUniform4uiv(GLint location, GLsizei count,
const GLuint *value);
260 void glUniform3uiv(GLint location, GLsizei count,
const GLuint *value);
261 void glUniform2uiv(GLint location, GLsizei count,
const GLuint *value);
262 void glUniform1uiv(GLint location, GLsizei count,
const GLuint *value);
263 void glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
264 void glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
265 void glUniform2ui(GLint location, GLuint v0, GLuint v1);
266 void glUniform1ui(GLint location, GLuint v0);
267 GLint glGetFragDataLocation(GLuint program,
const GLchar *name);
268 void glBindFragDataLocation(GLuint program, GLuint color,
const GLchar *name);
269 void glGetUniformuiv(GLuint program, GLint location, GLuint *params);
270 void glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params);
271 void glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params);
272 void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride,
const GLvoid *pointer);
273 void glEndConditionalRender();
274 void glBeginConditionalRender(GLuint id, GLenum mode);
275 void glClampColor(GLenum target, GLenum clamp);
276 void glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
277 void glTransformFeedbackVaryings(GLuint program, GLsizei count,
const GLchar*
const *varyings, GLenum bufferMode);
278 void glBindBufferBase(GLenum target, GLuint index, GLuint buffer);
279 void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
280 void glEndTransformFeedback();
281 void glBeginTransformFeedback(GLenum primitiveMode);
282 GLboolean glIsEnabledi(GLenum target, GLuint index);
283 void glDisablei(GLenum target, GLuint index);
284 void glEnablei(GLenum target, GLuint index);
285 void glGetIntegeri_v(GLenum target, GLuint index, GLint *data);
286 void glGetBooleani_v(GLenum target, GLuint index, GLboolean *data);
287 void glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
290 void glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
291 void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
292 void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
293 void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
294 GLuint glGetUniformBlockIndex(GLuint program,
const GLchar *uniformBlockName);
295 void glGetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
296 void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount,
const GLuint *uniformIndices, GLenum pname, GLint *params);
297 void glGetUniformIndices(GLuint program, GLsizei uniformCount,
const GLchar*
const *uniformNames, GLuint *uniformIndices);
298 void glPrimitiveRestartIndex(GLuint index);
299 void glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer);
300 void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type,
const GLvoid *indices, GLsizei instancecount);
301 void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
304 void glSampleMaski(GLuint index, GLbitfield mask);
305 void glGetMultisamplefv(GLenum pname, GLuint index, GLfloat *val);
306 void glTexImage3DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
307 void glTexImage2DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
308 void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
309 void glGetInteger64v(GLenum pname, GLint64 *params);
310 void glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
311 GLenum glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
312 void glDeleteSync(GLsync sync);
313 GLboolean glIsSync(GLsync sync);
314 GLsync glFenceSync(GLenum condition, GLbitfield flags);
315 void glProvokingVertex(GLenum mode);
316 void glMultiDrawElementsBaseVertex(GLenum mode,
const GLsizei *count, GLenum type,
const GLvoid*
const *indices, GLsizei drawcount,
const GLint *basevertex);
317 void glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type,
const GLvoid *indices, GLsizei instancecount, GLint basevertex);
318 void glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type,
const GLvoid *indices, GLint basevertex);
319 void glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
const GLvoid *indices, GLint basevertex);
320 void glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level);
321 void glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params);
322 void glGetInteger64i_v(GLenum target, GLuint index, GLint64 *data);
325 void glVertexAttribP4uiv(GLuint index, GLenum type, GLboolean normalized,
const GLuint *value);
326 void glVertexAttribP4ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
327 void glVertexAttribP3uiv(GLuint index, GLenum type, GLboolean normalized,
const GLuint *value);
328 void glVertexAttribP3ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
329 void glVertexAttribP2uiv(GLuint index, GLenum type, GLboolean normalized,
const GLuint *value);
330 void glVertexAttribP2ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
331 void glVertexAttribP1uiv(GLuint index, GLenum type, GLboolean normalized,
const GLuint *value);
332 void glVertexAttribP1ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
333 void glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params);
334 void glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params);
335 void glQueryCounter(GLuint id, GLenum target);
336 void glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params);
337 void glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params);
338 void glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params);
339 void glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params);
340 void glSamplerParameterIuiv(GLuint sampler, GLenum pname,
const GLuint *param);
341 void glSamplerParameterIiv(GLuint sampler, GLenum pname,
const GLint *param);
342 void glSamplerParameterfv(GLuint sampler, GLenum pname,
const GLfloat *param);
343 void glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
344 void glSamplerParameteriv(GLuint sampler, GLenum pname,
const GLint *param);
345 void glSamplerParameteri(GLuint sampler, GLenum pname, GLint param);
346 void glBindSampler(GLuint unit, GLuint sampler);
347 GLboolean glIsSampler(GLuint sampler);
348 void glDeleteSamplers(GLsizei count,
const GLuint *samplers);
349 void glGenSamplers(GLsizei count, GLuint *samplers);
350 GLint glGetFragDataIndex(GLuint program,
const GLchar *name);
351 void glBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index,
const GLchar *name);
352 void glVertexAttribDivisor(GLuint index, GLuint divisor);
355 void glGetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint *params);
356 void glEndQueryIndexed(GLenum target, GLuint index);
357 void glBeginQueryIndexed(GLenum target, GLuint index, GLuint id);
358 void glDrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream);
359 void glDrawTransformFeedback(GLenum mode, GLuint id);
360 void glResumeTransformFeedback();
361 void glPauseTransformFeedback();
362 GLboolean glIsTransformFeedback(GLuint id);
363 void glGenTransformFeedbacks(GLsizei n, GLuint *ids);
364 void glDeleteTransformFeedbacks(GLsizei n,
const GLuint *ids);
365 void glBindTransformFeedback(GLenum target, GLuint id);
366 void glPatchParameterfv(GLenum pname,
const GLfloat *values);
367 void glPatchParameteri(GLenum pname, GLint value);
368 void glGetProgramStageiv(GLuint program, GLenum shadertype, GLenum pname, GLint *values);
369 void glGetUniformSubroutineuiv(GLenum shadertype, GLint location, GLuint *params);
370 void glUniformSubroutinesuiv(GLenum shadertype, GLsizei count,
const GLuint *indices);
371 void glGetActiveSubroutineName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
372 void glGetActiveSubroutineUniformName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
373 void glGetActiveSubroutineUniformiv(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
374 GLuint glGetSubroutineIndex(GLuint program, GLenum shadertype,
const GLchar *name);
375 GLint glGetSubroutineUniformLocation(GLuint program, GLenum shadertype,
const GLchar *name);
376 void glGetUniformdv(GLuint program, GLint location, GLdouble *params);
377 void glUniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
378 void glUniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
379 void glUniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
380 void glUniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
381 void glUniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
382 void glUniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
383 void glUniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
384 void glUniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
385 void glUniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
386 void glUniform4dv(GLint location, GLsizei count,
const GLdouble *value);
387 void glUniform3dv(GLint location, GLsizei count,
const GLdouble *value);
388 void glUniform2dv(GLint location, GLsizei count,
const GLdouble *value);
389 void glUniform1dv(GLint location, GLsizei count,
const GLdouble *value);
390 void glUniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
391 void glUniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z);
392 void glUniform2d(GLint location, GLdouble x, GLdouble y);
393 void glUniform1d(GLint location, GLdouble x);
394 void glDrawElementsIndirect(GLenum mode, GLenum type,
const GLvoid *indirect);
395 void glDrawArraysIndirect(GLenum mode,
const GLvoid *indirect);
396 void glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
397 void glBlendFunci(GLuint buf, GLenum src, GLenum dst);
398 void glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
399 void glBlendEquationi(GLuint buf, GLenum mode);
400 void glMinSampleShading(GLfloat value);
403 void glGetDoublei_v(GLenum target, GLuint index, GLdouble *data);
404 void glGetFloati_v(GLenum target, GLuint index, GLfloat *data);
405 void glDepthRangeIndexed(GLuint index, GLdouble n, GLdouble f);
406 void glDepthRangeArrayv(GLuint first, GLsizei count,
const GLdouble *v);
407 void glScissorIndexedv(GLuint index,
const GLint *v);
408 void glScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
409 void glScissorArrayv(GLuint first, GLsizei count,
const GLint *v);
410 void glViewportIndexedfv(GLuint index,
const GLfloat *v);
411 void glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
412 void glViewportArrayv(GLuint first, GLsizei count,
const GLfloat *v);
413 void glGetVertexAttribLdv(GLuint index, GLenum pname, GLdouble *params);
414 void glVertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride,
const GLvoid *pointer);
415 void glVertexAttribL4dv(GLuint index,
const GLdouble *v);
416 void glVertexAttribL3dv(GLuint index,
const GLdouble *v);
417 void glVertexAttribL2dv(GLuint index,
const GLdouble *v);
418 void glVertexAttribL1dv(GLuint index,
const GLdouble *v);
419 void glVertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
420 void glVertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
421 void glVertexAttribL2d(GLuint index, GLdouble x, GLdouble y);
422 void glVertexAttribL1d(GLuint index, GLdouble x);
423 void glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
424 void glValidateProgramPipeline(GLuint pipeline);
425 void glProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
426 void glProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
427 void glProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
428 void glProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
429 void glProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
430 void glProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
431 void glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
432 void glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
433 void glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
434 void glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
435 void glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
436 void glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
437 void glProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
438 void glProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
439 void glProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
440 void glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
441 void glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
442 void glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
443 void glProgramUniform4uiv(GLuint program, GLint location, GLsizei count,
const GLuint *value);
444 void glProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
445 void glProgramUniform4dv(GLuint program, GLint location, GLsizei count,
const GLdouble *value);
446 void glProgramUniform4d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
447 void glProgramUniform4fv(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
448 void glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
449 void glProgramUniform4iv(GLuint program, GLint location, GLsizei count,
const GLint *value);
450 void glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
451 void glProgramUniform3uiv(GLuint program, GLint location, GLsizei count,
const GLuint *value);
452 void glProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
453 void glProgramUniform3dv(GLuint program, GLint location, GLsizei count,
const GLdouble *value);
454 void glProgramUniform3d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
455 void glProgramUniform3fv(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
456 void glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
457 void glProgramUniform3iv(GLuint program, GLint location, GLsizei count,
const GLint *value);
458 void glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
459 void glProgramUniform2uiv(GLuint program, GLint location, GLsizei count,
const GLuint *value);
460 void glProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1);
461 void glProgramUniform2dv(GLuint program, GLint location, GLsizei count,
const GLdouble *value);
462 void glProgramUniform2d(GLuint program, GLint location, GLdouble v0, GLdouble v1);
463 void glProgramUniform2fv(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
464 void glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1);
465 void glProgramUniform2iv(GLuint program, GLint location, GLsizei count,
const GLint *value);
466 void glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1);
467 void glProgramUniform1uiv(GLuint program, GLint location, GLsizei count,
const GLuint *value);
468 void glProgramUniform1ui(GLuint program, GLint location, GLuint v0);
469 void glProgramUniform1dv(GLuint program, GLint location, GLsizei count,
const GLdouble *value);
470 void glProgramUniform1d(GLuint program, GLint location, GLdouble v0);
471 void glProgramUniform1fv(GLuint program, GLint location, GLsizei count,
const GLfloat *value);
472 void glProgramUniform1f(GLuint program, GLint location, GLfloat v0);
473 void glProgramUniform1iv(GLuint program, GLint location, GLsizei count,
const GLint *value);
474 void glProgramUniform1i(GLuint program, GLint location, GLint v0);
475 void glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params);
476 GLboolean glIsProgramPipeline(GLuint pipeline);
477 void glGenProgramPipelines(GLsizei n, GLuint *pipelines);
478 void glDeleteProgramPipelines(GLsizei n,
const GLuint *pipelines);
479 void glBindProgramPipeline(GLuint pipeline);
480 GLuint glCreateShaderProgramv(GLenum type, GLsizei count,
const GLchar*
const *strings);
481 void glActiveShaderProgram(GLuint pipeline, GLuint program);
482 void glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
483 void glProgramParameteri(GLuint program, GLenum pname, GLint value);
484 void glProgramBinary(GLuint program, GLenum binaryFormat,
const GLvoid *binary, GLsizei length);
485 void glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
486 void glClearDepthf(GLfloat dd);
487 void glDepthRangef(GLfloat n, GLfloat f);
488 void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
489 void glShaderBinary(GLsizei count,
const GLuint *shaders, GLenum binaryformat,
const GLvoid *binary, GLsizei length);
490 void glReleaseShaderCompiler();
493 void glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
494 void glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
495 void glTexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
496 void glMemoryBarrier(GLbitfield barriers);
497 void glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
498 void glGetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
499 void glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
500 void glDrawTransformFeedbackStreamInstanced(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
501 void glDrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei instancecount);
502 void glDrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type,
const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
503 void glDrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type,
const void *indices, GLsizei instancecount, GLuint baseinstance);
504 void glDrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
507 friend class QOpenGLVersionFunctionsFactory;
509 static bool isContextCompatible(QOpenGLContext *context);
510 static QOpenGLVersionProfile versionProfile();
512 QOpenGLFunctions_1_0_CoreBackend* d_1_0_Core;
513 QOpenGLFunctions_1_1_CoreBackend* d_1_1_Core;
514 QOpenGLFunctions_1_2_CoreBackend* d_1_2_Core;
515 QOpenGLFunctions_1_3_CoreBackend* d_1_3_Core;
516 QOpenGLFunctions_1_4_CoreBackend* d_1_4_Core;
517 QOpenGLFunctions_1_5_CoreBackend* d_1_5_Core;
518 QOpenGLFunctions_2_0_CoreBackend* d_2_0_Core;
519 QOpenGLFunctions_2_1_CoreBackend* d_2_1_Core;
520 QOpenGLFunctions_3_0_CoreBackend* d_3_0_Core;
521 QOpenGLFunctions_3_1_CoreBackend* d_3_1_Core;
522 QOpenGLFunctions_3_2_CoreBackend* d_3_2_Core;
523 QOpenGLFunctions_3_3_CoreBackend* d_3_3_Core;
524 QOpenGLFunctions_4_0_CoreBackend* d_4_0_Core;
525 QOpenGLFunctions_4_1_CoreBackend* d_4_1_Core;
526 QOpenGLFunctions_4_2_CoreBackend* d_4_2_Core;