205 explicit QOpenGLFunctions(QOpenGLContext *context);
206 ~QOpenGLFunctions() {}
210 Multitexture = 0x0001,
213 Framebuffers = 0x0008,
215 BlendEquation = 0x0020,
216 BlendEquationSeparate = 0x0040,
217 BlendFuncSeparate = 0x0080,
218 BlendSubtract = 0x0100,
219 CompressedTextures = 0x0200,
220 Multisample = 0x0400,
221 StencilSeparate = 0x0800,
222 NPOTTextures = 0x1000,
223 NPOTTextureRepeat = 0x2000,
224 FixedFunctionPipeline = 0x4000,
225 TextureRGFormats = 0x8000,
226 MultipleRenderTargets = 0x10000,
227 BlendEquationAdvanced = 0x20000,
229 Q_DECLARE_FLAGS(OpenGLFeatures, OpenGLFeature)
231 QOpenGLFunctions::OpenGLFeatures openGLFeatures()
const;
232 bool hasOpenGLFeature(QOpenGLFunctions::OpenGLFeature feature)
const;
234 void initializeOpenGLFunctions();
237 void glBindTexture(GLenum target, GLuint texture);
238 void glBlendFunc(GLenum sfactor, GLenum dfactor);
239 void glClear(GLbitfield mask);
240 void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
241 void glClearStencil(GLint s);
242 void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
243 void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
244 void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
245 void glCullFace(GLenum mode);
246 void glDeleteTextures(GLsizei n,
const GLuint* textures);
247 void glDepthFunc(GLenum func);
248 void glDepthMask(GLboolean flag);
249 void glDisable(GLenum cap);
250 void glDrawArrays(GLenum mode, GLint first, GLsizei count);
251 void glDrawElements(GLenum mode, GLsizei count, GLenum type,
const GLvoid* indices);
252 void glEnable(GLenum cap);
255 void glFrontFace(GLenum mode);
256 void glGenTextures(GLsizei n, GLuint* textures);
257 void glGetBooleanv(GLenum pname, GLboolean* params);
259 void glGetFloatv(GLenum pname, GLfloat* params);
260 void glGetIntegerv(GLenum pname, GLint* params);
261 const GLubyte *glGetString(GLenum name);
262 void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params);
263 void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params);
264 void glHint(GLenum target, GLenum mode);
265 GLboolean glIsEnabled(GLenum cap);
266 GLboolean glIsTexture(GLuint texture);
267 void glLineWidth(GLfloat width);
268 void glPixelStorei(GLenum pname, GLint param);
269 void glPolygonOffset(GLfloat factor, GLfloat units);
270 void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
271 void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
272 void glStencilFunc(GLenum func, GLint ref, GLuint mask);
273 void glStencilMask(GLuint mask);
274 void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
275 void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type,
const GLvoid* pixels);
276 void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
277 void glTexParameterfv(GLenum target, GLenum pname,
const GLfloat* params);
278 void glTexParameteri(GLenum target, GLenum pname, GLint param);
279 void glTexParameteriv(GLenum target, GLenum pname,
const GLint* params);
280 void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type,
const GLvoid* pixels);
281 void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
284 void glActiveTexture(GLenum texture);
285 void glAttachShader(GLuint program, GLuint shader);
286 void glBindAttribLocation(GLuint program, GLuint index,
const char* name);
287 void glBindBuffer(GLenum target, GLuint buffer);
288 void glBindFramebuffer(GLenum target, GLuint framebuffer);
289 void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
290 void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
291 void glBlendEquation(GLenum mode);
292 void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
293 void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
294 void glBufferData(GLenum target, qopengl_GLsizeiptr size,
const void* data, GLenum usage);
295 void glBufferSubData(GLenum target, qopengl_GLintptr offset, qopengl_GLsizeiptr size,
const void* data);
296 GLenum glCheckFramebufferStatus(GLenum target);
297 void glClearDepthf(GLclampf depth);
298 void glCompileShader(GLuint shader);
299 void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize,
const void* data);
300 void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize,
const void* data);
301 GLuint glCreateProgram();
302 GLuint glCreateShader(GLenum type);
303 void glDeleteBuffers(GLsizei n,
const GLuint* buffers);
304 void glDeleteFramebuffers(GLsizei n,
const GLuint* framebuffers);
305 void glDeleteProgram(GLuint program);
306 void glDeleteRenderbuffers(GLsizei n,
const GLuint* renderbuffers);
307 void glDeleteShader(GLuint shader);
308 void glDepthRangef(GLclampf zNear, GLclampf zFar);
309 void glDetachShader(GLuint program, GLuint shader);
310 void glDisableVertexAttribArray(GLuint index);
311 void glEnableVertexAttribArray(GLuint index);
312 void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
313 void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
314 void glGenBuffers(GLsizei n, GLuint* buffers);
315 void glGenerateMipmap(GLenum target);
316 void glGenFramebuffers(GLsizei n, GLuint* framebuffers);
317 void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers);
318 void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type,
char* name);
319 void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type,
char* name);
320 void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
321 GLint glGetAttribLocation(GLuint program,
const char* name);
322 void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params);
323 void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params);
324 void glGetProgramiv(GLuint program, GLenum pname, GLint* params);
325 void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length,
char* infolog);
326 void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params);
327 void glGetShaderiv(GLuint shader, GLenum pname, GLint* params);
328 void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length,
char* infolog);
329 void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
330 void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length,
char* source);
331 void glGetUniformfv(GLuint program, GLint location, GLfloat* params);
332 void glGetUniformiv(GLuint program, GLint location, GLint* params);
333 GLint glGetUniformLocation(GLuint program,
const char* name);
334 void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params);
335 void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params);
336 void glGetVertexAttribPointerv(GLuint index, GLenum pname,
void** pointer);
337 GLboolean glIsBuffer(GLuint buffer);
338 GLboolean glIsFramebuffer(GLuint framebuffer);
339 GLboolean glIsProgram(GLuint program);
340 GLboolean glIsRenderbuffer(GLuint renderbuffer);
341 GLboolean glIsShader(GLuint shader);
342 void glLinkProgram(GLuint program);
343 void glReleaseShaderCompiler();
344 void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
345 void glSampleCoverage(GLclampf value, GLboolean invert);
346 void glShaderBinary(GLint n,
const GLuint* shaders, GLenum binaryformat,
const void* binary, GLint length);
347 void glShaderSource(GLuint shader, GLsizei count,
const char** string,
const GLint* length);
348 void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
349 void glStencilMaskSeparate(GLenum face, GLuint mask);
350 void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
351 void glUniform1f(GLint location, GLfloat x);
352 void glUniform1fv(GLint location, GLsizei count,
const GLfloat* v);
353 void glUniform1i(GLint location, GLint x);
354 void glUniform1iv(GLint location, GLsizei count,
const GLint* v);
355 void glUniform2f(GLint location, GLfloat x, GLfloat y);
356 void glUniform2fv(GLint location, GLsizei count,
const GLfloat* v);
357 void glUniform2i(GLint location, GLint x, GLint y);
358 void glUniform2iv(GLint location, GLsizei count,
const GLint* v);
359 void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z);
360 void glUniform3fv(GLint location, GLsizei count,
const GLfloat* v);
361 void glUniform3i(GLint location, GLint x, GLint y, GLint z);
362 void glUniform3iv(GLint location, GLsizei count,
const GLint* v);
363 void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
364 void glUniform4fv(GLint location, GLsizei count,
const GLfloat* v);
365 void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w);
366 void glUniform4iv(GLint location, GLsizei count,
const GLint* v);
367 void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat* value);
368 void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat* value);
369 void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat* value);
370 void glUseProgram(GLuint program);
371 void glValidateProgram(GLuint program);
372 void glVertexAttrib1f(GLuint indx, GLfloat x);
373 void glVertexAttrib1fv(GLuint indx,
const GLfloat* values);
374 void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
375 void glVertexAttrib2fv(GLuint indx,
const GLfloat* values);
376 void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
377 void glVertexAttrib3fv(GLuint indx,
const GLfloat* values);
378 void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
379 void glVertexAttrib4fv(GLuint indx,
const GLfloat* values);
380 void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride,
const void* ptr);
383 QOpenGLFunctionsPrivate *d_ptr;
384 static bool isInitialized(
const QOpenGLFunctionsPrivate *d) {
return d !=
nullptr; }