QGLShader Class
The QGLShader class allows OpenGL shaders to be compiled. More...
Header: | #include <QGLShader> |
qmake: | QT += opengl |
Since: | Qt 4.6 |
Inherits: | QObject |
This class is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.
Public Types
flags | ShaderType |
enum | ShaderTypeBit { Vertex, Fragment, Geometry } |
Public Functions
QGLShader(QGLShader::ShaderType type, QObject *parent = nullptr) | |
QGLShader(QGLShader::ShaderType type, const QGLContext *context, QObject *parent = nullptr) | |
virtual | ~QGLShader() |
bool | compileSourceCode(const char *source) |
bool | compileSourceCode(const QByteArray &source) |
bool | compileSourceCode(const QString &source) |
bool | compileSourceFile(const QString &fileName) |
bool | isCompiled() const |
QString | log() const |
GLuint | shaderId() const |
QGLShader::ShaderType | shaderType() const |
QByteArray | sourceCode() const |
- 31 public functions inherited from QObject
Static Public Members
bool | hasOpenGLShaders(QGLShader::ShaderType type, const QGLContext *context = nullptr) |
const QMetaObject | staticMetaObject |
- 9 static public members inherited from QObject
Additional Inherited Members
- 1 property inherited from QObject
- 1 public slot inherited from QObject
- 2 signals inherited from QObject
- 9 protected functions inherited from QObject
Detailed Description
The QGLShader class allows OpenGL shaders to be compiled.
This class supports shaders written in the OpenGL Shading Language (GLSL) and in the OpenGL/ES Shading Language (GLSL/ES).
QGLShader and QGLShaderProgram shelter the programmer from the details of compiling and linking vertex and fragment shaders.
Note: This class has been deprecated in favor of QOpenGLShader.
See also QGLShaderProgram.
Member Type Documentation
enum QGLShader::ShaderTypeBit
flags QGLShader::ShaderType
This enum specifies the type of QGLShader that is being created.
Constant | Value | Description |
---|---|---|
QGLShader::Vertex | 0x0001 | Vertex shader written in the OpenGL Shading Language (GLSL). |
QGLShader::Fragment | 0x0002 | Fragment shader written in the OpenGL Shading Language (GLSL). |
QGLShader::Geometry | 0x0004 | Geometry shaders written in the OpenGL Shading Language (GLSL), based on the GL_EXT_geometry_shader4 extension. |
The ShaderType type is a typedef for QFlags<ShaderTypeBit>. It stores an OR combination of ShaderTypeBit values.
Member Function Documentation
QGLShader::QGLShader(QGLShader::ShaderType type, QObject *parent = nullptr)
Constructs a new QGLShader object of the specified type and attaches it to parent. If shader programs are not supported, QGLShaderProgram::hasOpenGLShaderPrograms() will return false.
This constructor is normally followed by a call to compileSourceCode() or compileSourceFile().
The shader will be associated with the current QGLContext.
See also compileSourceCode() and compileSourceFile().
QGLShader::QGLShader(QGLShader::ShaderType type, const QGLContext *context, QObject *parent = nullptr)
Constructs a new QGLShader object of the specified type and attaches it to parent. If shader programs are not supported, then QGLShaderProgram::hasOpenGLShaderPrograms() will return false.
This constructor is normally followed by a call to compileSourceCode() or compileSourceFile().
The shader will be associated with context.
See also compileSourceCode() and compileSourceFile().
[virtual]
QGLShader::~QGLShader()
Deletes this shader. If the shader has been attached to a QGLShaderProgram object, then the actual shader will stay around until the QGLShaderProgram is destroyed.
bool QGLShader::compileSourceCode(const char *source)
Sets the source code for this shader and compiles it. Returns true
if the source was successfully compiled, false otherwise.
See also compileSourceFile().
bool QGLShader::compileSourceCode(const QByteArray &source)
This is an overloaded function.
Sets the source code for this shader and compiles it. Returns true
if the source was successfully compiled, false otherwise.
See also compileSourceFile().
bool QGLShader::compileSourceCode(const QString &source)
This is an overloaded function.
Sets the source code for this shader and compiles it. Returns true
if the source was successfully compiled, false otherwise.
See also compileSourceFile().
bool QGLShader::compileSourceFile(const QString &fileName)
Sets the source code for this shader to the contents of fileName and compiles it. Returns true
if the file could be opened and the source compiled, false otherwise.
See also compileSourceCode().
[static]
bool QGLShader::hasOpenGLShaders(QGLShader::ShaderType type, const QGLContext *context = nullptr)
Returns true
if shader programs of type type are supported on this system; false otherwise.
The context is used to resolve the GLSL extensions. If context is null, then QGLContext::currentContext() is used.
This function was introduced in Qt 4.7.
bool QGLShader::isCompiled() const
Returns true
if this shader has been compiled; false otherwise.
See also compileSourceCode() and compileSourceFile().
QString QGLShader::log() const
Returns the errors and warnings that occurred during the last compile.
See also compileSourceCode() and compileSourceFile().
GLuint QGLShader::shaderId() const
Returns the OpenGL identifier associated with this shader.
See also QGLShaderProgram::programId().
QGLShader::ShaderType QGLShader::shaderType() const
Returns the type of this shader.
QByteArray QGLShader::sourceCode() const
Returns the source code for this shader.
See also compileSourceCode().
© 2019 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.