CopperSpice API  1.9.2
QGLFunctions Class Reference

The QGLFunctions class provides cross-platform access to the OpenGL ES 2.0 API. More...

Public Typedefs

using OpenGLFeatures = QFlags< OpenGLFeature >
 

Public Types

enum  OpenGLFeature
 

Public Methods

 QGLFunctions ()
 
 QGLFunctions (const QGLContext *context)
 
 ~QGLFunctions ()
 
void glActiveTexture (GLenum texture)
 
void glAttachShader (GLuint program, GLuint shader)
 
void glBindAttribLocation (GLuint program, GLuint index, const char *name)
 
void glBindBuffer (GLenum target, GLuint buffer)
 
void glBindFramebuffer (GLenum target, GLuint framebuffer)
 
void glBindRenderbuffer (GLenum target, GLuint renderbuffer)
 
void glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
 
void glBlendEquation (GLenum mode)
 
void glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha)
 
void glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
 
void glBufferData (GLenum target, qopengl_GLsizeiptr size, const void *data, GLenum usage)
 
void glBufferSubData (GLenum target, qopengl_GLintptr offset, qopengl_GLsizeiptr size, const void *data)
 
GLenum glCheckFramebufferStatus (GLenum target)
 
void glClearDepthf (GLclampf depth)
 
void glCompileShader (GLuint shader)
 
void glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)
 
void glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)
 
GLuint glCreateProgram ()
 
GLuint glCreateShader (GLenum type)
 
void glDeleteBuffers (GLsizei n, const GLuint *buffers)
 
void glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers)
 
void glDeleteProgram (GLuint program)
 
void glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers)
 
void glDeleteShader (GLuint shader)
 
void glDepthRangef (GLclampf zNear, GLclampf zFar)
 
void glDetachShader (GLuint program, GLuint shader)
 
void glDisableVertexAttribArray (GLuint index)
 
void glEnableVertexAttribArray (GLuint index)
 
void glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
 
void glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
 
void glGenBuffers (GLsizei n, GLuint *buffers)
 
void glGenerateMipmap (GLenum target)
 
void glGenFramebuffers (GLsizei n, GLuint *framebuffers)
 
void glGenRenderbuffers (GLsizei n, GLuint *renderbuffers)
 
void glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name)
 
void glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name)
 
void glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders)
 
int glGetAttribLocation (GLuint program, const char *name)
 
void glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params)
 
void glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params)
 
void glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei *length, char *infolog)
 
void glGetProgramiv (GLuint program, GLenum pname, GLint *params)
 
void glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params)
 
void glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei *length, char *infolog)
 
void glGetShaderiv (GLuint shader, GLenum pname, GLint *params)
 
void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)
 
void glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei *length, char *source)
 
void glGetUniformfv (GLuint program, GLint location, GLfloat *params)
 
void glGetUniformiv (GLuint program, GLint location, GLint *params)
 
int glGetUniformLocation (GLuint program, const char *name)
 
void glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params)
 
void glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params)
 
void glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer)
 
GLboolean glIsBuffer (GLuint buffer)
 
GLboolean glIsFramebuffer (GLuint framebuffer)
 
GLboolean glIsProgram (GLuint program)
 
GLboolean glIsRenderbuffer (GLuint renderbuffer)
 
GLboolean glIsShader (GLuint shader)
 
void glLinkProgram (GLuint program)
 
void glReleaseShaderCompiler ()
 
void glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
 
void glSampleCoverage (GLclampf value, GLboolean invert)
 
void glShaderBinary (GLint n, const GLuint *shaders, GLenum binaryformat, const void *binary, GLint length)
 
void glShaderSource (GLuint shader, GLsizei count, const char **string, const GLint *length)
 
void glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask)
 
void glStencilMaskSeparate (GLenum face, GLuint mask)
 
void glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
 
void glUniform1f (GLint location, GLfloat x)
 
void glUniform1fv (GLint location, GLsizei count, const GLfloat *v)
 
void glUniform1i (GLint location, GLint x)
 
void glUniform1iv (GLint location, GLsizei count, const GLint *v)
 
void glUniform2f (GLint location, GLfloat x, GLfloat y)
 
void glUniform2fv (GLint location, GLsizei count, const GLfloat *v)
 
void glUniform2i (GLint location, GLint x, GLint y)
 
void glUniform2iv (GLint location, GLsizei count, const GLint *v)
 
void glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z)
 
void glUniform3fv (GLint location, GLsizei count, const GLfloat *v)
 
void glUniform3i (GLint location, GLint x, GLint y, GLint z)
 
void glUniform3iv (GLint location, GLsizei count, const GLint *v)
 
void glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
 
void glUniform4fv (GLint location, GLsizei count, const GLfloat *v)
 
void glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w)
 
void glUniform4iv (GLint location, GLsizei count, const GLint *v)
 
void glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
 
void glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
 
void glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
 
void glUseProgram (GLuint program)
 
void glValidateProgram (GLuint program)
 
void glVertexAttrib1f (GLuint indx, GLfloat x)
 
void glVertexAttrib1fv (GLuint indx, const GLfloat *values)
 
void glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y)
 
void glVertexAttrib2fv (GLuint indx, const GLfloat *values)
 
void glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z)
 
void glVertexAttrib3fv (GLuint indx, const GLfloat *values)
 
void glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
 
void glVertexAttrib4fv (GLuint indx, const GLfloat *values)
 
void glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *ptr)
 
bool hasOpenGLFeature (QGLFunctions::OpenGLFeature feature) const
 
void initializeGLFunctions (const QGLContext *context=nullptr)
 
QGLFunctions::OpenGLFeatures openGLFeatures () const
 

Detailed Description

The QGLFunctions class provides cross platform access to the OpenGL ES 2.0 API.

OpenGL ES 2.0 defines a subset of the OpenGL specification which are common across many desktop and embedded OpenGL implementations. It can be difficult to use the functions because they need to be resolved manually on desktop systems.

QGLFunctions provides a guaranteed API that is available on all OpenGL systems and takes care of function resolution on systems that need it. The recommended way to use QGLFunctions is by inheritance.

class MyGLWidget : public QGLWidget, protected QGLFunctions
{
CS_OBJECT(MyGLWidget)
public:
MyGLWidget(QWidget *parent = nullptr)
: QGLWidget(parent)
{ }
protected:
void initializeGL();
void paintGL();
};
void MyGLWidget::initializeGL() {
}

Rendering OpenGL Images

The paintGL() method can use any of the OpenGL ES 2.0 functions, such as glActiveTexture().

void MyGLWidget::paintGL()
{
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, texture_id);
// ...
}

Using QGLFunctions Without Inheritance

QOpenGLFunctions can also be used directly to call OpenGL ES 2.0 functions.

glFuncs.glActiveTexture(GL_TEXTURE1);

QGLFunctions provides wrappers for all OpenGL ES 2.0 functions, except those like glDrawArrays(), glViewport() and glBindTexture() that do not have portability issues.

Including the header for QGLFunctions will also define all of the OpenGL ES 2.0 macro constants which are not already defined by the system's OpenGL headers, such as GL_TEXTURE1.

The hasOpenGLFeature() and openGLFeatures() methods can be used to determine if the OpenGL implementation has a major OpenGL ES 2.0 feature. For example, the following checks if non power of two textures are available:

bool npot = funcs.hasOpenGLFeature(QGLFunctions::NPOTTextures);
See also
initializeGLFunctions()

Member Typedef Documentation

Typedef for QFlags<OpenGLFeature> which contains an OR combination of OpenGLFeature values.

Refer to QGLFunctions::OpenGLFeature for the enum documentation.

Member Enumeration Documentation

This enum defines OpenGL and OpenGL ES features which may be supported, based on the users OpenGL drivers.

ConstantValueDescription
QGLFunctions::Multitexture0x0001glActiveTexture() function is available.
QGLFunctions::Shaders0x0002Shader functions are available.
QGLFunctions::Buffers0x0004Vertex and index buffer functions are available.
QGLFunctions::Framebuffers0x0008Framebuffer object functions are available.
QGLFunctions::BlendColor0x0010glBlendColor() is available.
QGLFunctions::BlendEquation0x0020glBlendEquation() is available.
QGLFunctions::BlendEquationSeparate0x0040glBlendEquationSeparate() is available.
QGLFunctions::BlendFuncSeparate0x0080glBlendFuncSeparate() is available.
QGLFunctions::BlendSubtract0x0100Blend subtract mode is available.
QGLFunctions::CompressedTextures0x0200Compressed texture functions are available.
QGLFunctions::Multisample0x0400glSampleCoverage() function is available.
QGLFunctions::StencilSeparate0x0800Separate stencil functions are available.
QGLFunctions::NPOTTextures0x1000Non power of two textures are available.

Constructor & Destructor Documentation

QGLFunctions::QGLFunctions ( )

Constructs a default QGLFunctions object. The new object can not be used until initializeGLFunctions() is called to specify the context.

QGLFunctions::QGLFunctions ( const QGLContext context)
explicit

Constructs a QGLFunctions using context. If context is a nullptr the active OpenGL context will be used. If required, call initializeGLFunctions() to change the context.

QGLFunctions::~QGLFunctions ( )
inline

Destroys this QGLFunctions.

Method Documentation

void QGLFunctions::glActiveTexture ( GLenum  texture)
inline

Equivalent to calling glActiveTexture(texture). For more information refer to the OpenGL ES 2.0 documentation for glActiveTexture().

void QGLFunctions::glAttachShader ( GLuint  program,
GLuint  shader 
)
inline

Equivalent to calling glAttachShader(program, shader). For more information refer to the OpenGL ES 2.0 documentation for glAttachShader().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glBindAttribLocation ( GLuint  program,
GLuint  index,
const char *  name 
)
inline

Equivalent to calling glBindAttribLocation(program, index, name). For more information refer to the OpenGL ES 2.0 documentation for glBindAttribLocation().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glBindBuffer ( GLenum  target,
GLuint  buffer 
)
inline

Equivalent to calling glBindBuffer(target, buffer). For more information refer to the OpenGL ES 2.0 documentation for glBindBuffer().

void QGLFunctions::glBindFramebuffer ( GLenum  target,
GLuint  framebuffer 
)
inline

Equivalent to calling glBindFramebuffer(target, framebuffer). For more information refer to the OpenGL ES 2.0 documentation for glBindFramebuffer().

void QGLFunctions::glBindRenderbuffer ( GLenum  target,
GLuint  renderbuffer 
)
inline

Equivalent to calling glBindRenderbuffer(target, renderbuffer). For more information refer to the OpenGL ES 2.0 documentation for glBindRenderbuffer().

void QGLFunctions::glBlendColor ( GLclampf  red,
GLclampf  green,
GLclampf  blue,
GLclampf  alpha 
)
inline

Equivalent to calling glBlendColor(red, green, blue, alpha). For more information refer to the OpenGL ES 2.0 documentation for glBlendColor().

void QGLFunctions::glBlendEquation ( GLenum  mode)
inline

Equivalent to calling glBlendEquation(mode). For more information refer to the OpenGL ES 2.0 documentation for glBlendEquation().

void QGLFunctions::glBlendEquationSeparate ( GLenum  modeRGB,
GLenum  modeAlpha 
)
inline

Equivalent to calling glBlendEquationSeparate(modeRGB, modeAlpha). For more information refer to the OpenGL ES 2.0 documentation for glBlendEquationSeparate().

void QGLFunctions::glBlendFuncSeparate ( GLenum  srcRGB,
GLenum  dstRGB,
GLenum  srcAlpha,
GLenum  dstAlpha 
)
inline

Equivalent to calling glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha). For more information refer to the OpenGL ES 2.0 documentation for glBlendFuncSeparate().

void QGLFunctions::glBufferData ( GLenum  target,
qopengl_GLsizeiptr  size,
const void *  data,
GLenum  usage 
)
inline

Equivalent to calling glBufferData(target, size, data, usage).For more information refer to the OpenGL ES 2.0 documentation for glBufferData().

void QGLFunctions::glBufferSubData ( GLenum  target,
qopengl_GLintptr  offset,
qopengl_GLsizeiptr  size,
const void *  data 
)
inline

Equivalent to calling glBufferSubData(target, offset, size, data). For more information refer to the OpenGL ES 2.0 documentation for glBufferSubData().

GLenum QGLFunctions::glCheckFramebufferStatus ( GLenum  target)
inline

Equivalent to calling glCheckFramebufferStatus(target). For more information refer to the OpenGL ES 2.0 documentation for glCheckFramebufferStatus().

void QGLFunctions::glClearDepthf ( GLclampf  depth)
inline

Equivalent to calling glClearDepth(depth) on desktop OpenGL systems and glClearDepthf(depth) on embedded OpenGL ES systems. For more information refer to the OpenGL ES 2.0 documentation for glClearDepthf().

void QGLFunctions::glCompileShader ( GLuint  shader)
inline

Equivalent to calling glCompileShader(shader). For more information refer to the OpenGL ES 2.0 documentation for glCompileShader().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glCompressedTexImage2D ( GLenum  target,
GLint  level,
GLenum  internalformat,
GLsizei  width,
GLsizei  height,
GLint  border,
GLsizei  imageSize,
const void *  data 
)
inline

Equivalent to calling glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data). For more information refer to the OpenGL ES 2.0 documentation for glCompressedTexImage2D().

void QGLFunctions::glCompressedTexSubImage2D ( GLenum  target,
GLint  level,
GLint  xoffset,
GLint  yoffset,
GLsizei  width,
GLsizei  height,
GLenum  format,
GLsizei  imageSize,
const void *  data 
)
inline

Equivalent to calling glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data). For more information refer to the OpenGL ES 2.0 documentation for glCompressedTexSubImage2D().

GLuint QGLFunctions::glCreateProgram ( )
inline

Equivalent to calling glCreateProgram(). For more information refer to the OpenGL ES 2.0 documentation for glCreateProgram().

Calling this method will do nothing on OpenGL ES 1.x systems.

GLuint QGLFunctions::glCreateShader ( GLenum  type)
inline

Equivalent to calling glCreateShader(type). For more information refer to the OpenGL ES 2.0 documentation for glCreateShader().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glDeleteBuffers ( GLsizei  n,
const GLuint *  buffers 
)
inline

Equivalent to calling glDeleteBuffers(n, buffers). For more information refer to the OpenGL ES 2.0 documentation for glDeleteBuffers().

void QGLFunctions::glDeleteFramebuffers ( GLsizei  n,
const GLuint *  framebuffers 
)
inline

Equivalent to calling glDeleteFramebuffers(n, framebuffers). For more information refer to the OpenGL ES 2.0 documentation for glDeleteFramebuffers().

void QGLFunctions::glDeleteProgram ( GLuint  program)
inline

Equivalent to calling glDeleteProgram(program). For more information refer to the OpenGL ES 2.0 documentation for glDeleteProgram().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glDeleteRenderbuffers ( GLsizei  n,
const GLuint *  renderbuffers 
)
inline

Equivalent to calling glDeleteRenderbuffers(n, renderbuffers). For more information refer to the OpenGL ES 2.0 documentation for glDeleteRenderbuffers().

void QGLFunctions::glDeleteShader ( GLuint  shader)
inline

Equivalent to calling glDeleteShader(shader). For more information refer to the OpenGL ES 2.0 documentation for glDeleteShader().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glDepthRangef ( GLclampf  zNear,
GLclampf  zFar 
)
inline

Equivalent to calling glDepthRange(zNear, zFar) on desktop OpenGL systems and glDepthRangef(zNear, zFar) on embedded OpenGL ES systems. For more information refer to the OpenGL ES 2.0 documentation for glDepthRangef().

void QGLFunctions::glDetachShader ( GLuint  program,
GLuint  shader 
)
inline

Equivalent to calling glDetachShader(program, shader). For more information refer to the OpenGL ES 2.0 documentation for glDetachShader().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glDisableVertexAttribArray ( GLuint  index)
inline

Equivalent to calling glDisableVertexAttribArray(index). For more information refer to the OpenGL ES 2.0 documentation for glDisableVertexAttribArray().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glEnableVertexAttribArray ( GLuint  index)
inline

Equivalent to calling glEnableVertexAttribArray(index). For more information refer to the OpenGL ES 2.0 documentation for glEnableVertexAttribArray().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glFramebufferRenderbuffer ( GLenum  target,
GLenum  attachment,
GLenum  renderbuffertarget,
GLuint  renderbuffer 
)
inline

Equivalent to calling glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer). For more information refer to the OpenGL ES 2.0 documentation for glFramebufferRenderbuffer().

void QGLFunctions::glFramebufferTexture2D ( GLenum  target,
GLenum  attachment,
GLenum  textarget,
GLuint  texture,
GLint  level 
)
inline

Equivalent to calling glFramebufferTexture2D(target, attachment, textarget, texture, level). For more information refer to the OpenGL ES 2.0 documentation for glFramebufferTexture2D().

void QGLFunctions::glGenBuffers ( GLsizei  n,
GLuint *  buffers 
)
inline

Equivalent to calling glGenBuffers(n, buffers). For more information refer to the OpenGL ES 2.0 documentation for glGenBuffers().

void QGLFunctions::glGenerateMipmap ( GLenum  target)
inline

Equivalent to calling glGenerateMipmap(target). For more information refer to the OpenGL ES 2.0 documentation for glGenerateMipmap().

void QGLFunctions::glGenFramebuffers ( GLsizei  n,
GLuint *  framebuffers 
)
inline

Equivalent to calling glGenFramebuffers(n, framebuffers). For more information refer to the OpenGL ES 2.0 documentation for glGenFramebuffers().

void QGLFunctions::glGenRenderbuffers ( GLsizei  n,
GLuint *  renderbuffers 
)
inline

Equivalent to calling glGenRenderbuffers(n, renderbuffers). For more information refer to the OpenGL ES 2.0 documentation for glGenRenderbuffers().

void QGLFunctions::glGetActiveAttrib ( GLuint  program,
GLuint  index,
GLsizei  bufsize,
GLsizei *  length,
GLint *  size,
GLenum *  type,
char *  name 
)
inline

Equivalent to calling glGetActiveAttrib(program, index, bufsize, length, size, type, name). For more information refer to the OpenGL ES 2.0 documentation for glGetActiveAttrib().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetActiveUniform ( GLuint  program,
GLuint  index,
GLsizei  bufsize,
GLsizei *  length,
GLint *  size,
GLenum *  type,
char *  name 
)
inline

Equivalent to calling glGetActiveUniform(program, index, bufsize, length, size, type, name). For more information refer to the OpenGL ES 2.0 documentation for glGetActiveUniform().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetAttachedShaders ( GLuint  program,
GLsizei  maxcount,
GLsizei *  count,
GLuint *  shaders 
)
inline

Equivalent to calling glGetAttachedShaders(program, maxcount, count, shaders). For more information refer to the OpenGL ES 2.0 documentation for glGetAttachedShaders().

Calling this method will do nothing on OpenGL ES 1.x systems.

int QGLFunctions::glGetAttribLocation ( GLuint  program,
const char *  name 
)
inline

Equivalent to calling glGetAttribLocation(program, name). For more information refer to the OpenGL ES 2.0 documentation for glGetAttribLocation().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetBufferParameteriv ( GLenum  target,
GLenum  pname,
GLint *  params 
)
inline

Equivalent to calling glGetBufferParameteriv(target, pname, params). For more information refer to the OpenGL ES 2.0 documentation for glGetBufferParameteriv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetFramebufferAttachmentParameteriv ( GLenum  target,
GLenum  attachment,
GLenum  pname,
GLint *  params 
)
inline

Equivalent to calling glGetFramebufferAttachmentParameteriv(target, attachment, pname, params). For more information refer to the OpenGL ES 2.0 documentation for glGetFramebufferAttachmentParameteriv().

void QGLFunctions::glGetProgramInfoLog ( GLuint  program,
GLsizei  bufsize,
GLsizei *  length,
char *  infolog 
)
inline

Equivalent to calling glGetProgramInfoLog(program, bufsize, length, infolog). For more information refer to the OpenGL ES 2.0 documentation for glGetProgramInfoLog().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetProgramiv ( GLuint  program,
GLenum  pname,
GLint *  params 
)
inline

Equivalent to calling glGetProgramiv(program, pname, params). For more information refer to the OpenGL ES 2.0 documentation for glGetProgramiv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetRenderbufferParameteriv ( GLenum  target,
GLenum  pname,
GLint *  params 
)
inline

Equivalent to calling glGetRenderbufferParameteriv(target, pname, params). For more information refer to the OpenGL ES 2.0 documentation for glGetRenderbufferParameteriv().

void QGLFunctions::glGetShaderInfoLog ( GLuint  shader,
GLsizei  bufsize,
GLsizei *  length,
char *  infolog 
)
inline

Equivalent to calling glGetShaderInfoLog(shader, bufsize, length, infolog). For more information refer to the OpenGL ES 2.0 documentation for glGetShaderInfoLog().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetShaderiv ( GLuint  shader,
GLenum  pname,
GLint *  params 
)
inline

Equivalent to calling glGetShaderiv(shader, pname, params). For more information refer to the OpenGL ES 2.0 documentation for glGetShaderiv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetShaderPrecisionFormat ( GLenum  shadertype,
GLenum  precisiontype,
GLint *  range,
GLint *  precision 
)
inline

Equivalent to calling glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision). For more information refer to the OpenGL ES 2.0 documentation for glGetShaderPrecisionFormat().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetShaderSource ( GLuint  shader,
GLsizei  bufsize,
GLsizei *  length,
char *  source 
)
inline

Equivalent to calling glGetShaderSource(shader, bufsize, length, source). For more information refer to the OpenGL ES 2.0 documentation for glGetShaderSource().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetUniformfv ( GLuint  program,
GLint  location,
GLfloat *  params 
)
inline

Equivalent to calling glGetUniformfv(program, location, params). For more information refer to the OpenGL ES 2.0 documentation for glGetUniformfv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetUniformiv ( GLuint  program,
GLint  location,
GLint *  params 
)
inline

Equivalent to calling glGetUniformiv(program, location, params). For more information refer to the OpenGL ES 2.0 documentation for glGetUniformiv().

Calling this method will do nothing on OpenGL ES 1.x systems.

int QGLFunctions::glGetUniformLocation ( GLuint  program,
const char *  name 
)
inline

Equivalent to calling glGetUniformLocation(program, name). For more information refer to the OpenGL ES 2.0 documentation for glGetUniformLocation().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetVertexAttribfv ( GLuint  index,
GLenum  pname,
GLfloat *  params 
)
inline

Equivalent to calling glGetVertexAttribfv(index, pname, params). For more information refer to the OpenGL ES 2.0 documentation for glGetVertexAttribfv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetVertexAttribiv ( GLuint  index,
GLenum  pname,
GLint *  params 
)
inline

Equivalent to calling glGetVertexAttribiv(index, pname, params). For more information refer to the OpenGL ES 2.0 documentation for glGetVertexAttribiv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glGetVertexAttribPointerv ( GLuint  index,
GLenum  pname,
void **  pointer 
)
inline

Equivalent to calling glGetVertexAttribPointerv(index, pname, pointer). For more information refer to the OpenGL ES 2.0 documentation for glGetVertexAttribPointerv().

Calling this method will do nothing on OpenGL ES 1.x systems.

GLboolean QGLFunctions::glIsBuffer ( GLuint  buffer)
inline

Equivalent to calling glIsBuffer(buffer). For more information refer to the OpenGL ES 2.0 documentation for glIsBuffer().

GLboolean QGLFunctions::glIsFramebuffer ( GLuint  framebuffer)
inline

Equivalent to calling glIsFramebuffer(framebuffer). For more information refer to the OpenGL ES 2.0 documentation for glIsFramebuffer().

GLboolean QGLFunctions::glIsProgram ( GLuint  program)
inline

Equivalent to calling glIsProgram(program). For more information refer to the OpenGL ES 2.0 documentation for glIsProgram().

Calling this method will do nothing on OpenGL ES 1.x systems.

GLboolean QGLFunctions::glIsRenderbuffer ( GLuint  renderbuffer)
inline

Equivalent to calling glIsRenderbuffer(renderbuffer). For more information refer to the OpenGL ES 2.0 documentation for glIsRenderbuffer().

GLboolean QGLFunctions::glIsShader ( GLuint  shader)
inline

Equivalent to calling glIsShader(shader). For more information refer to the OpenGL ES 2.0 documentation for glIsShader().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glLinkProgram ( GLuint  program)
inline

Equivalent to calling glLinkProgram(program). For more information refer to the OpenGL ES 2.0 documentation for glLinkProgram().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glReleaseShaderCompiler ( )
inline

Equivalent to calling glReleaseShaderCompiler(). For more information refer to the OpenGL ES 2.0 documentation for glReleaseShaderCompiler().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glRenderbufferStorage ( GLenum  target,
GLenum  internalformat,
GLsizei  width,
GLsizei  height 
)
inline

Equivalent to calling glRenderbufferStorage(target, internalformat, width, height). For more information refer to the OpenGL ES 2.0 documentation for glRenderbufferStorage().

void QGLFunctions::glSampleCoverage ( GLclampf  value,
GLboolean  invert 
)
inline

Equivalent to calling glSampleCoverage(value, invert). For more information refer to the OpenGL ES 2.0 documentation for glSampleCoverage().

void QGLFunctions::glShaderBinary ( GLint  n,
const GLuint *  shaders,
GLenum  binaryformat,
const void *  binary,
GLint  length 
)
inline

Equivalent to calling glShaderBinary(n, shaders, binaryformat, binary, length). For more information refer to the OpenGL ES 2.0 documentation for glShaderBinary().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glShaderSource ( GLuint  shader,
GLsizei  count,
const char **  string,
const GLint *  length 
)
inline

Equivalent to calling glShaderSource(shader, count, string, length). For more information refer to the OpenGL ES 2.0 documentation for glShaderSource().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glStencilFuncSeparate ( GLenum  face,
GLenum  func,
GLint  ref,
GLuint  mask 
)
inline

Equivalent to calling glStencilFuncSeparate(face, func, ref, mask). For more information refer to the OpenGL ES 2.0 documentation for glStencilFuncSeparate().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glStencilMaskSeparate ( GLenum  face,
GLuint  mask 
)
inline

Equivalent to calling glStencilMaskSeparate(face, mask). For more information refer to the OpenGL ES 2.0 documentation for glStencilMaskSeparate().

void QGLFunctions::glStencilOpSeparate ( GLenum  face,
GLenum  fail,
GLenum  zfail,
GLenum  zpass 
)
inline

Equivalent to calling glStencilOpSeparate(face, fail, zfail, zpass). For more information refer to the OpenGL ES 2.0 documentation for glStencilOpSeparate().

void QGLFunctions::glUniform1f ( GLint  location,
GLfloat  x 
)
inline

Equivalent to calling glUniform1f(location, x). For more information refer to the OpenGL ES 2.0 documentation for glUniform1f().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform1fv ( GLint  location,
GLsizei  count,
const GLfloat *  v 
)
inline

Equivalent to calling glUniform1fv(location, count, v). For more information refer to the OpenGL ES 2.0 documentation for glUniform1fv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform1i ( GLint  location,
GLint  x 
)
inline

Equivalent to calling glUniform1i(location, x). For more information refer to the OpenGL ES 2.0 documentation for glUniform1i().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform1iv ( GLint  location,
GLsizei  count,
const GLint *  v 
)
inline

Equivalent to calling glUniform1iv(location, count, v). For more information refer to the OpenGL ES 2.0 documentation for glUniform1iv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform2f ( GLint  location,
GLfloat  x,
GLfloat  y 
)
inline

Equivalent to calling glUniform2f(location, x, y). For more information refer to the OpenGL ES 2.0 documentation for glUniform2f().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform2fv ( GLint  location,
GLsizei  count,
const GLfloat *  v 
)
inline

Equivalent to calling glUniform2fv(location, count, v). For more information refer to the OpenGL ES 2.0 documentation for glUniform2fv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform2i ( GLint  location,
GLint  x,
GLint  y 
)
inline

Equivalent to calling glUniform2i(location, x, y). For more information refer to the OpenGL ES 2.0 documentation for glUniform2i().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform2iv ( GLint  location,
GLsizei  count,
const GLint *  v 
)
inline

Equivalent to calling glUniform2iv(location, count, v). For more information refer to the OpenGL ES 2.0 documentation for glUniform2iv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform3f ( GLint  location,
GLfloat  x,
GLfloat  y,
GLfloat  z 
)
inline

Equivalent to calling glUniform3f(location, x, y, z). For more information refer to the OpenGL ES 2.0 documentation for glUniform3f().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform3fv ( GLint  location,
GLsizei  count,
const GLfloat *  v 
)
inline

Equivalent to calling glUniform3fv(location, count, v). For more information refer to the OpenGL ES 2.0 documentation for glUniform3fv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform3i ( GLint  location,
GLint  x,
GLint  y,
GLint  z 
)
inline

Equivalent to calling glUniform3i(location, x, y, z). For more information refer to the OpenGL ES 2.0 documentation for glUniform3i().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform3iv ( GLint  location,
GLsizei  count,
const GLint *  v 
)
inline

Equivalent to calling glUniform3iv(location, count, v). For more information refer to the OpenGL ES 2.0 documentation for glUniform3iv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform4f ( GLint  location,
GLfloat  x,
GLfloat  y,
GLfloat  z,
GLfloat  w 
)
inline

Equivalent to calling glUniform4f(location, x, y, z, w). For more information refer to the OpenGL ES 2.0 documentation for glUniform4f().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform4fv ( GLint  location,
GLsizei  count,
const GLfloat *  v 
)
inline

Equivalent to calling glUniform4fv(location, count, v). For more information refer to the OpenGL ES 2.0 documentation for glUniform4fv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform4i ( GLint  location,
GLint  x,
GLint  y,
GLint  z,
GLint  w 
)
inline

Equivalent to calling glUniform4i(location, x, y, z, w). For more information refer to the OpenGL ES 2.0 documentation for glUniform4i().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniform4iv ( GLint  location,
GLsizei  count,
const GLint *  v 
)
inline

Equivalent to calling glUniform4iv(location, count, v). For more information refer to the OpenGL ES 2.0 documentation for glUniform4iv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniformMatrix2fv ( GLint  location,
GLsizei  count,
GLboolean  transpose,
const GLfloat *  value 
)
inline

Equivalent to calling glUniformMatrix2fv(location, count, transpose, value). For more information refer to the OpenGL ES 2.0 documentation for glUniformMatrix2fv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniformMatrix3fv ( GLint  location,
GLsizei  count,
GLboolean  transpose,
const GLfloat *  value 
)
inline

Equivalent to calling glUniformMatrix3fv(location, count, transpose, value). For more information refer to the OpenGL ES 2.0 documentation for glUniformMatrix3fv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUniformMatrix4fv ( GLint  location,
GLsizei  count,
GLboolean  transpose,
const GLfloat *  value 
)
inline

Equivalent to calling glUniformMatrix4fv(location, count, transpose, value). For more information refer to the OpenGL ES 2.0 documentation for glUniformMatrix4fv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glUseProgram ( GLuint  program)
inline

Equivalent to calling glUseProgram(program). For more information refer to the OpenGL ES 2.0 documentation for glUseProgram().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glValidateProgram ( GLuint  program)
inline

Equivalent to calling glValidateProgram(program). For more information refer to the OpenGL ES 2.0 documentation for glValidateProgram().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glVertexAttrib1f ( GLuint  indx,
GLfloat  x 
)
inline

Equivalent to calling glVertexAttrib1f(indx, x). For more information refer to the OpenGL ES 2.0 documentation for glVertexAttrib1f().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glVertexAttrib1fv ( GLuint  indx,
const GLfloat *  values 
)
inline

Equivalent to calling glVertexAttrib1fv(indx, values). For more information refer to the OpenGL ES 2.0 documentation for glVertexAttrib1fv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glVertexAttrib2f ( GLuint  indx,
GLfloat  x,
GLfloat  y 
)
inline

Equivalent to calling glVertexAttrib2f(indx, x, y). For more information refer to the OpenGL ES 2.0 documentation for glVertexAttrib2f().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glVertexAttrib2fv ( GLuint  indx,
const GLfloat *  values 
)
inline

Equivalent to calling glVertexAttrib2fv(indx, values). For more information refer to the OpenGL ES 2.0 documentation for glVertexAttrib2fv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glVertexAttrib3f ( GLuint  indx,
GLfloat  x,
GLfloat  y,
GLfloat  z 
)
inline

Equivalent to calling glVertexAttrib3f(indx, x, y, z). For more information refer to the OpenGL ES 2.0 documentation for glVertexAttrib3f().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glVertexAttrib3fv ( GLuint  indx,
const GLfloat *  values 
)
inline

Equivalent to calling glVertexAttrib3fv(indx, values). For more information refer to the OpenGL ES 2.0 documentation for glVertexAttrib3fv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glVertexAttrib4f ( GLuint  indx,
GLfloat  x,
GLfloat  y,
GLfloat  z,
GLfloat  w 
)
inline

Equivalent to calling glVertexAttrib4f(indx, x, y, z, w). For more information refer to the OpenGL ES 2.0 documentation for glVertexAttrib4f().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glVertexAttrib4fv ( GLuint  indx,
const GLfloat *  values 
)
inline

Equivalent to calling glVertexAttrib4fv(indx, values). For more information refer to the OpenGL ES 2.0 documentation for glVertexAttrib4fv().

Calling this method will do nothing on OpenGL ES 1.x systems.

void QGLFunctions::glVertexAttribPointer ( GLuint  indx,
GLint  size,
GLenum  type,
GLboolean  normalized,
GLsizei  stride,
const void *  ptr 
)
inline

Equivalent to calling glVertexAttribPointer(indx, size, type, normalized, stride, ptr). For more information refer to the OpenGL ES 2.0 documentation for glVertexAttribPointer().

Calling this method will do nothing on OpenGL ES 1.x systems.

bool QGLFunctions::hasOpenGLFeature ( QGLFunctions::OpenGLFeature  feature) const

Returns true if the given feature is present on the current system, otherwise returns false.

See also
openGLFeatures()
void QGLFunctions::initializeGLFunctions ( const QGLContext context = nullptr)

Initializes OpenGL functions for the current context. After calling this method the QGLFunctions object can only be used with the current context. Call initializeGLFunctions() again to change the object's context.

QGLFunctions::OpenGLFeatures QGLFunctions::openGLFeatures ( ) const

Returns the set of features which are present on the current system.

See also
hasOpenGLFeature()