29class Q_OPENGL_EXPORT QOpenGLFunctions_3_1 :
public QAbstractOpenGLFunctions
32 QOpenGLFunctions_3_1();
33 ~QOpenGLFunctions_3_1();
35 bool initializeOpenGLFunctions() override;
38 void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
39 void glDepthRange(GLdouble nearVal, GLdouble farVal);
40 GLboolean glIsEnabled(GLenum cap);
41 void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
42 void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
43 void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params);
44 void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
45 void glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
46 const GLubyte * glGetString(GLenum name);
47 void glGetIntegerv(GLenum pname, GLint *params);
48 void glGetFloatv(GLenum pname, GLfloat *params);
50 void glGetDoublev(GLenum pname, GLdouble *params);
51 void glGetBooleanv(GLenum pname, GLboolean *params);
52 void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
53 void glReadBuffer(GLenum mode);
54 void glPixelStorei(GLenum pname, GLint param);
55 void glPixelStoref(GLenum pname, GLfloat param);
56 void glDepthFunc(GLenum func);
57 void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
58 void glStencilFunc(GLenum func, GLint ref, GLuint mask);
59 void glLogicOp(GLenum opcode);
60 void glBlendFunc(GLenum sfactor, GLenum dfactor);
63 void glEnable(GLenum cap);
64 void glDisable(GLenum cap);
65 void glDepthMask(GLboolean flag);
66 void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
67 void glStencilMask(GLuint mask);
68 void glClearDepth(GLdouble depth);
69 void glClearStencil(GLint s);
70 void glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
71 void glClear(GLbitfield mask);
72 void glDrawBuffer(GLenum mode);
73 void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type,
const GLvoid *pixels);
74 void glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type,
const GLvoid *pixels);
75 void glTexParameteriv(GLenum target, GLenum pname,
const GLint *params);
76 void glTexParameteri(GLenum target, GLenum pname, GLint param);
77 void glTexParameterfv(GLenum target, GLenum pname,
const GLfloat *params);
78 void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
79 void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
80 void glPolygonMode(GLenum face, GLenum mode);
81 void glPointSize(GLfloat size);
82 void glLineWidth(GLfloat width);
83 void glHint(GLenum target, GLenum mode);
84 void glFrontFace(GLenum mode);
85 void glCullFace(GLenum mode);
88 GLboolean glIsTexture(GLuint texture);
89 void glGenTextures(GLsizei n, GLuint *textures);
90 void glDeleteTextures(GLsizei n,
const GLuint *textures);
91 void glBindTexture(GLenum target, GLuint texture);
92 void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type,
const GLvoid *pixels);
93 void glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type,
const GLvoid *pixels);
94 void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
95 void glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
96 void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
97 void glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
98 void glPolygonOffset(GLfloat factor, GLfloat units);
99 void glDrawElements(GLenum mode, GLsizei count, GLenum type,
const GLvoid *indices);
100 void glDrawArrays(GLenum mode, GLint first, GLsizei count);
103 void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
104 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);
105 void glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type,
const GLvoid *pixels);
106 void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type,
const GLvoid *indices);
107 void glBlendEquation(GLenum mode);
108 void glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
111 void glGetCompressedTexImage(GLenum target, GLint level, GLvoid *img);
112 void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize,
const GLvoid *data);
113 void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize,
const GLvoid *data);
114 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);
115 void glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize,
const GLvoid *data);
116 void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize,
const GLvoid *data);
117 void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize,
const GLvoid *data);
118 void glSampleCoverage(GLfloat value, GLboolean invert);
119 void glActiveTexture(GLenum texture);
122 void glPointParameteriv(GLenum pname,
const GLint *params);
123 void glPointParameteri(GLenum pname, GLint param);
124 void glPointParameterfv(GLenum pname,
const GLfloat *params);
125 void glPointParameterf(GLenum pname, GLfloat param);
126 void glMultiDrawElements(GLenum mode,
const GLsizei *count, GLenum type,
const GLvoid*
const *indices, GLsizei drawcount);
127 void glMultiDrawArrays(GLenum mode,
const GLint *first,
const GLsizei *count, GLsizei drawcount);
128 void glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
131 void glGetBufferPointerv(GLenum target, GLenum pname, GLvoid* *params);
132 void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params);
133 GLboolean glUnmapBuffer(GLenum target);
134 GLvoid* glMapBuffer(GLenum target, GLenum access);
135 void glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
136 void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size,
const GLvoid *data);
137 void glBufferData(GLenum target, GLsizeiptr size,
const GLvoid *data, GLenum usage);
138 GLboolean glIsBuffer(GLuint buffer);
139 void glGenBuffers(GLsizei n, GLuint *buffers);
140 void glDeleteBuffers(GLsizei n,
const GLuint *buffers);
141 void glBindBuffer(GLenum target, GLuint buffer);
142 void glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
143 void glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params);
144 void glGetQueryiv(GLenum target, GLenum pname, GLint *params);
145 void glEndQuery(GLenum target);
146 void glBeginQuery(GLenum target, GLuint id);
147 GLboolean glIsQuery(GLuint id);
148 void glDeleteQueries(GLsizei n,
const GLuint *ids);
149 void glGenQueries(GLsizei n, GLuint *ids);
152 void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride,
const GLvoid *pointer);
153 void glValidateProgram(GLuint program);
154 void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
155 void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
156 void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
157 void glUniform4iv(GLint location, GLsizei count,
const GLint *value);
158 void glUniform3iv(GLint location, GLsizei count,
const GLint *value);
159 void glUniform2iv(GLint location, GLsizei count,
const GLint *value);
160 void glUniform1iv(GLint location, GLsizei count,
const GLint *value);
161 void glUniform4fv(GLint location, GLsizei count,
const GLfloat *value);
162 void glUniform3fv(GLint location, GLsizei count,
const GLfloat *value);
163 void glUniform2fv(GLint location, GLsizei count,
const GLfloat *value);
164 void glUniform1fv(GLint location, GLsizei count,
const GLfloat *value);
165 void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
166 void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2);
167 void glUniform2i(GLint location, GLint v0, GLint v1);
168 void glUniform1i(GLint location, GLint v0);
169 void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
170 void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
171 void glUniform2f(GLint location, GLfloat v0, GLfloat v1);
172 void glUniform1f(GLint location, GLfloat v0);
173 void glUseProgram(GLuint program);
174 void glShaderSource(GLuint shader, GLsizei count,
const GLchar*
const *string,
const GLint *length);
175 void glLinkProgram(GLuint program);
176 GLboolean glIsShader(GLuint shader);
177 GLboolean glIsProgram(GLuint program);
178 void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid* *pointer);
179 void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params);
180 void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params);
181 void glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params);
182 void glGetUniformiv(GLuint program, GLint location, GLint *params);
183 void glGetUniformfv(GLuint program, GLint location, GLfloat *params);
184 GLint glGetUniformLocation(GLuint program,
const GLchar *name);
185 void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
186 void glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
187 void glGetShaderiv(GLuint shader, GLenum pname, GLint *params);
188 void glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
189 void glGetProgramiv(GLuint program, GLenum pname, GLint *params);
190 GLint glGetAttribLocation(GLuint program,
const GLchar *name);
191 void glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
192 void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
193 void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
194 void glEnableVertexAttribArray(GLuint index);
195 void glDisableVertexAttribArray(GLuint index);
196 void glDetachShader(GLuint program, GLuint shader);
197 void glDeleteShader(GLuint shader);
198 void glDeleteProgram(GLuint program);
199 GLuint glCreateShader(GLenum type);
200 GLuint glCreateProgram();
201 void glCompileShader(GLuint shader);
202 void glBindAttribLocation(GLuint program, GLuint index,
const GLchar *name);
203 void glAttachShader(GLuint program, GLuint shader);
204 void glStencilMaskSeparate(GLenum face, GLuint mask);
205 void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
206 void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
207 void glDrawBuffers(GLsizei n,
const GLenum *bufs);
208 void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
211 void glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
212 void glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
213 void glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
214 void glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
215 void glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
216 void glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
219 GLboolean glIsVertexArray(GLuint array);
220 void glGenVertexArrays(GLsizei n, GLuint *arrays);
221 void glDeleteVertexArrays(GLsizei n,
const GLuint *arrays);
222 void glBindVertexArray(GLuint array);
223 void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
224 GLvoid* glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
225 void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
226 void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
227 void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
228 void glGenerateMipmap(GLenum target);
229 void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params);
230 void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
231 void glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
232 void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
233 void glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
234 GLenum glCheckFramebufferStatus(GLenum target);
235 void glGenFramebuffers(GLsizei n, GLuint *framebuffers);
236 void glDeleteFramebuffers(GLsizei n,
const GLuint *framebuffers);
237 void glBindFramebuffer(GLenum target, GLuint framebuffer);
238 GLboolean glIsFramebuffer(GLuint framebuffer);
239 void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params);
240 void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
241 void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers);
242 void glDeleteRenderbuffers(GLsizei n,
const GLuint *renderbuffers);
243 void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
244 GLboolean glIsRenderbuffer(GLuint renderbuffer);
245 const GLubyte * glGetStringi(GLenum name, GLuint index);
246 void glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
247 void glClearBufferfv(GLenum buffer, GLint drawbuffer,
const GLfloat *value);
248 void glClearBufferuiv(GLenum buffer, GLint drawbuffer,
const GLuint *value);
249 void glClearBufferiv(GLenum buffer, GLint drawbuffer,
const GLint *value);
250 void glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params);
251 void glGetTexParameterIiv(GLenum target, GLenum pname, GLint *params);
252 void glTexParameterIuiv(GLenum target, GLenum pname,
const GLuint *params);
253 void glTexParameterIiv(GLenum target, GLenum pname,
const GLint *params);
254 void glUniform4uiv(GLint location, GLsizei count,
const GLuint *value);
255 void glUniform3uiv(GLint location, GLsizei count,
const GLuint *value);
256 void glUniform2uiv(GLint location, GLsizei count,
const GLuint *value);
257 void glUniform1uiv(GLint location, GLsizei count,
const GLuint *value);
258 void glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
259 void glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
260 void glUniform2ui(GLint location, GLuint v0, GLuint v1);
261 void glUniform1ui(GLint location, GLuint v0);
262 GLint glGetFragDataLocation(GLuint program,
const GLchar *name);
263 void glBindFragDataLocation(GLuint program, GLuint color,
const GLchar *name);
264 void glGetUniformuiv(GLuint program, GLint location, GLuint *params);
265 void glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params);
266 void glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params);
267 void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride,
const GLvoid *pointer);
268 void glEndConditionalRender();
269 void glBeginConditionalRender(GLuint id, GLenum mode);
270 void glClampColor(GLenum target, GLenum clamp);
271 void glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
272 void glTransformFeedbackVaryings(GLuint program, GLsizei count,
const GLchar*
const *varyings, GLenum bufferMode);
273 void glBindBufferBase(GLenum target, GLuint index, GLuint buffer);
274 void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
275 void glEndTransformFeedback();
276 void glBeginTransformFeedback(GLenum primitiveMode);
277 GLboolean glIsEnabledi(GLenum target, GLuint index);
278 void glDisablei(GLenum target, GLuint index);
279 void glEnablei(GLenum target, GLuint index);
280 void glGetIntegeri_v(GLenum target, GLuint index, GLint *data);
281 void glGetBooleani_v(GLenum target, GLuint index, GLboolean *data);
282 void glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
285 void glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
286 void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
287 void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
288 void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
289 GLuint glGetUniformBlockIndex(GLuint program,
const GLchar *uniformBlockName);
290 void glGetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
291 void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount,
const GLuint *uniformIndices, GLenum pname, GLint *params);
292 void glGetUniformIndices(GLuint program, GLsizei uniformCount,
const GLchar*
const *uniformNames, GLuint *uniformIndices);
293 void glPrimitiveRestartIndex(GLuint index);
294 void glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer);
295 void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type,
const GLvoid *indices, GLsizei instancecount);
296 void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
299 friend class QOpenGLVersionFunctionsFactory;
301 static bool isContextCompatible(QOpenGLContext *context);
302 static QOpenGLVersionProfile versionProfile();
304 QOpenGLFunctions_1_0_CoreBackend* d_1_0_Core;
305 QOpenGLFunctions_1_1_CoreBackend* d_1_1_Core;
306 QOpenGLFunctions_1_2_CoreBackend* d_1_2_Core;
307 QOpenGLFunctions_1_3_CoreBackend* d_1_3_Core;
308 QOpenGLFunctions_1_4_CoreBackend* d_1_4_Core;
309 QOpenGLFunctions_1_5_CoreBackend* d_1_5_Core;
310 QOpenGLFunctions_2_0_CoreBackend* d_2_0_Core;
311 QOpenGLFunctions_2_1_CoreBackend* d_2_1_Core;
312 QOpenGLFunctions_3_0_CoreBackend* d_3_0_Core;
313 QOpenGLFunctions_3_1_CoreBackend* d_3_1_Core;