summaryrefslogtreecommitdiffstats
path: root/src/render/materialsystem/qshaderprogram.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/materialsystem/qshaderprogram.h')
-rw-r--r--src/render/materialsystem/qshaderprogram.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/render/materialsystem/qshaderprogram.h b/src/render/materialsystem/qshaderprogram.h
index 442a25b2e..8c3da1a4a 100644
--- a/src/render/materialsystem/qshaderprogram.h
+++ b/src/render/materialsystem/qshaderprogram.h
@@ -58,6 +58,8 @@ class QT3DRENDERSHARED_EXPORT QShaderProgram : public Qt3DCore::QNode
Q_PROPERTY(QByteArray geometryShaderCode READ geometryShaderCode WRITE setGeometryShaderCode NOTIFY geometryShaderCodeChanged)
Q_PROPERTY(QByteArray fragmentShaderCode READ fragmentShaderCode WRITE setFragmentShaderCode NOTIFY fragmentShaderCodeChanged)
Q_PROPERTY(QByteArray computeShaderCode READ computeShaderCode WRITE setComputeShaderCode NOTIFY computeShaderCodeChanged)
+ Q_PROPERTY(QString log READ log NOTIFY logChanged REVISION 9)
+ Q_PROPERTY(Status status READ status NOTIFY statusChanged REVISION 9)
public:
explicit QShaderProgram(Qt3DCore::QNode *parent = nullptr);
@@ -73,6 +75,13 @@ public:
};
Q_ENUM(ShaderType) // LCOV_EXCL_LINE
+ enum Status {
+ NotReady = 0,
+ Ready,
+ Error
+ };
+ Q_ENUM(Status) // LCOV_EXCL_LINE
+
// Source code in-line
QByteArray vertexShaderCode() const;
QByteArray tessellationControlShaderCode() const;
@@ -84,6 +93,9 @@ public:
void setShaderCode(ShaderType type, const QByteArray &shaderCode);
QByteArray shaderCode(ShaderType type) const;
+ QString log() const;
+ Status status() const;
+
Q_INVOKABLE static QByteArray loadSource(const QUrl &sourceUrl);
public Q_SLOTS:
@@ -101,9 +113,12 @@ Q_SIGNALS:
void geometryShaderCodeChanged(const QByteArray &geometryShaderCode);
void fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode);
void computeShaderCodeChanged(const QByteArray &computeShaderCode);
+ void logChanged(const QString &log);
+ void statusChanged(Status status);
protected:
explicit QShaderProgram(QShaderProgramPrivate &dd, Qt3DCore::QNode *parent = nullptr);
+ void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QShaderProgram)