diff options
Diffstat (limited to 'src/render/materialsystem/qshaderprogram.h')
-rw-r--r-- | src/render/materialsystem/qshaderprogram.h | 15 |
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) |