QOpenGLShader Class
The QOpenGLShader class allows OpenGL shaders to be compiled. 更多...
头文件: | #include <QOpenGLShader> |
qmake: | QT += gui |
开始支持版本: | Qt 5.0 |
基类: | QObject |
公有类型
flags | ShaderType |
enum | ShaderTypeBit { Vertex, Fragment, Geometry, TessellationControl, TessellationEvaluation, Compute } |
公有函数
QOpenGLShader(QOpenGLShader::ShaderType type, QObject *parent = Q_NULLPTR) | |
virtual | ~QOpenGLShader() |
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 |
QOpenGLShader::ShaderType | shaderType() const |
QByteArray | sourceCode() const |
- 32 个公有函数继承自 QObject
静态公有成员
bool | hasOpenGLShaders(ShaderType type, QOpenGLContext *context = Q_NULLPTR) |
- 10 个静态公有成员继承自 QObject
其他继承的成员
- 1 个属性继承自 QObject
- 1 个公有槽函数继承自 QObject
- 2 个信号继承自 QObject
- 1 个公有变量继承自 QObject
- 9 个受保护的函数继承自 QObject
- 2 个受保护的变量继承自 QObject
详细描述
The QOpenGLShader 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).
QOpenGLShader and QOpenGLShaderProgram shelter the programmer from the details of compiling and linking vertex and fragment shaders.
成员类型
enum QOpenGLShader::ShaderTypeBit
flags QOpenGLShader::ShaderType
This enum specifies the type of QOpenGLShader that is being created.
Constant | Value | Description |
---|---|---|
QOpenGLShader::Vertex | 0x0001 | Vertex shader written in the OpenGL Shading Language (GLSL). |
QOpenGLShader::Fragment | 0x0002 | Fragment shader written in the OpenGL Shading Language (GLSL). |
QOpenGLShader::Geometry | 0x0004 | Geometry shaders written in the OpenGL Shading Language (GLSL) based on the OpenGL core feature (requires OpenGL >= 3.2). |
QOpenGLShader::TessellationControl | 0x0008 | Tessellation control shaders written in the OpenGL shading language (GLSL), based on the core feature (requires OpenGL >= 4.0). |
QOpenGLShader::TessellationEvaluation | 0x0010 | Tessellation evaluation shaders written in the OpenGL shading language (GLSL), based on the core feature (requires OpenGL >= 4.0). |
QOpenGLShader::Compute | 0x0020 | Compute shaders written in the OpenGL shading language (GLSL), based on the core feature (requires OpenGL >= 4.3). |
The ShaderType type is a typedef for QFlags<ShaderTypeBit>. It stores an OR combination of ShaderTypeBit values.
成员函数
QOpenGLShader::QOpenGLShader(QOpenGLShader::ShaderType type, QObject *parent = Q_NULLPTR)
Constructs a new QOpenGLShader object of the specified type and attaches it to parent. If shader programs are not supported, QOpenGLShaderProgram::hasOpenGLShaderPrograms() will return false.
This constructor is normally followed by a call to compileSourceCode() or compileSourceFile().
The shader will be associated with the current QOpenGLContext.
参见 compileSourceCode() and compileSourceFile().
[virtual]
QOpenGLShader::~QOpenGLShader()
Deletes this shader. If the shader has been attached to a QOpenGLShaderProgram object, then the actual shader will stay around until the QOpenGLShaderProgram is destroyed.
bool QOpenGLShader::compileSourceCode(const char *source)
Sets the source code for this shader and compiles it. Returns true
if the source was successfully compiled, false otherwise.
参见 compileSourceFile().
bool QOpenGLShader::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.
参见 compileSourceFile().
bool QOpenGLShader::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.
参见 compileSourceFile().
bool QOpenGLShader::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.
参见 compileSourceCode().
[static]
bool QOpenGLShader::hasOpenGLShaders(ShaderType type, QOpenGLContext *context = Q_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 QOpenGLContext::currentContext() is used.
bool QOpenGLShader::isCompiled() const
Returns true
if this shader has been compiled; false otherwise.
参见 compileSourceCode() and compileSourceFile().
QString QOpenGLShader::log() const
Returns the errors and warnings that occurred during the last compile.
参见 compileSourceCode() and compileSourceFile().
GLuint QOpenGLShader::shaderId() const
Returns the OpenGL identifier associated with this shader.
参见 QOpenGLShaderProgram::programId().
QOpenGLShader::ShaderType QOpenGLShader::shaderType() const
Returns the type of this shader.
QByteArray QOpenGLShader::sourceCode() const
Returns the source code for this shader.
参见 compileSourceCode().