QShaderProgram Class
(Qt3DRender::QShaderProgram)Encapsulates a Shader Program. 更多...
头文件: | #include <QShaderProgram> |
qmake: | QT += 3drender |
开始支持版本: | Qt 5.5 |
Instantiated By: | ShaderProgram |
基类: | Qt3DCore::QNode |
公有类型
enum | ShaderType { Vertex, Fragment, TessellationControl, TessellationEvaluation, Geometry, Compute } |
enum | Status { NotReady, Ready, Error } |
属性
|
|
- 3 个属性继承自 Qt3DCore::QNode
- 1 个属性继承自 QObject
公有函数
QShaderProgram(Qt3DCore::QNode *parent = nullptr) | |
~QShaderProgram() | |
QByteArray | computeShaderCode() const |
QByteArray | fragmentShaderCode() const |
QByteArray | geometryShaderCode() const |
QString | log() const |
void | setShaderCode(ShaderType type, const QByteArray &shaderCode) |
QByteArray | shaderCode(ShaderType type) const |
Status | status() const |
QByteArray | tessellationControlShaderCode() const |
QByteArray | tessellationEvaluationShaderCode() const |
QByteArray | vertexShaderCode() const |
- 11 个公有函数继承自 Qt3DCore::QNode
- 32 个公有函数继承自 QObject
公有槽函数
void | setComputeShaderCode(const QByteArray &computeShaderCode) |
void | setFragmentShaderCode(const QByteArray &fragmentShaderCode) |
void | setGeometryShaderCode(const QByteArray &geometryShaderCode) |
void | setTessellationControlShaderCode(const QByteArray &tessellationControlShaderCode) |
void | setTessellationEvaluationShaderCode(const QByteArray &tessellationEvaluationShaderCode) |
void | setVertexShaderCode(const QByteArray &vertexShaderCode) |
- 3 个公有槽函数继承自 Qt3DCore::QNode
- 1 个公有槽函数继承自 QObject
信号
void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
void | logChanged(const QString &log) |
void | statusChanged(Status status) |
void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
- 4 个信号继承自 Qt3DCore::QNode
- 2 个信号继承自 QObject
静态公有成员
QByteArray | loadSource(const QUrl &sourceUrl) |
- 10 个静态公有成员继承自 QObject
受保护的函数
QShaderProgram(QShaderProgramPrivate &dd, Qt3DCore::QNode *parent = nullptr) | |
void | sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change) |
- 2 个受保护的函数继承自 Qt3DCore::QNode
- 9 个受保护的函数继承自 QObject
其他继承的成员
详细描述
Encapsulates a Shader Program.
A shader program consists of several different shaders, such as vertex and fragment shaders.
成员类型
enum QShaderProgram::ShaderType
This enum identifies the type of shader used.
Constant | Value | Description |
---|---|---|
Qt3DRender::QShaderProgram::Vertex | 0 | Vertex shader |
Qt3DRender::QShaderProgram::Fragment | 1 | Fragment shader |
Qt3DRender::QShaderProgram::TessellationControl | 2 | Tesselation control shader |
Qt3DRender::QShaderProgram::TessellationEvaluation | 3 | Tesselation evaluation shader |
Qt3DRender::QShaderProgram::Geometry | 4 | Geometry shader |
Qt3DRender::QShaderProgram::Compute | 5 | Compute shader |
enum QShaderProgram::Status
属性
computeShaderCode : QByteArray
Holds the compute shader code used by this shader program.
访问函数:
QByteArray | computeShaderCode() const |
void | setComputeShaderCode(const QByteArray &computeShaderCode) |
Notifier signal:
void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
fragmentShaderCode : QByteArray
Holds the fragment shader code used by this shader program.
访问函数:
QByteArray | fragmentShaderCode() const |
void | setFragmentShaderCode(const QByteArray &fragmentShaderCode) |
Notifier signal:
void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
geometryShaderCode : QByteArray
Holds the geometry shader code used by this shader program.
访问函数:
QByteArray | geometryShaderCode() const |
void | setGeometryShaderCode(const QByteArray &geometryShaderCode) |
Notifier signal:
void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
log : const QString
Holds the log of the current shader program. This is useful to diagnose a compilation failure of the shader program.
访问函数:
QString | log() const |
Notifier signal:
void | logChanged(const QString &log) |
status : const Status
Holds the status of the current shader program.
访问函数:
Status | status() const |
Notifier signal:
void | statusChanged(Status status) |
tessellationControlShaderCode : QByteArray
Holds the tesselation control shader code used by this shader program.
访问函数:
QByteArray | tessellationControlShaderCode() const |
void | setTessellationControlShaderCode(const QByteArray &tessellationControlShaderCode) |
Notifier signal:
void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
tessellationEvaluationShaderCode : QByteArray
Holds the tesselation evaluation shader code used by this shader program.
访问函数:
QByteArray | tessellationEvaluationShaderCode() const |
void | setTessellationEvaluationShaderCode(const QByteArray &tessellationEvaluationShaderCode) |
Notifier signal:
void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
vertexShaderCode : QByteArray
Holds the vertex shader code used by this shader program.
访问函数:
QByteArray | vertexShaderCode() const |
void | setVertexShaderCode(const QByteArray &vertexShaderCode) |
Notifier signal:
void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
成员函数
QShaderProgram::QShaderProgram(Qt3DCore::QNode *parent = nullptr)
Default constructs an instance of QShaderProgram.
[protected]
QShaderProgram::QShaderProgram(QShaderProgramPrivate &dd, Qt3DCore::QNode *parent = nullptr)
Copy constructor.
QShaderProgram::~QShaderProgram()
Destroys the instance of QShaderProgram.
[static]
QByteArray QShaderProgram::loadSource(const QUrl &sourceUrl)
Returns the shader code loaded from sourceUrl.
[protected]
void QShaderProgram::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change)
void QShaderProgram::setShaderCode(ShaderType type, const QByteArray &shaderCode)
Sets the shader code for type of shader to the shaderCode.
参见 shaderCode().
QByteArray QShaderProgram::shaderCode(ShaderType type) const
Returns the shader code for type.
参见 setShaderCode().