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