diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-03-24 14:12:36 +0000 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-03-30 15:16:12 +0000 |
commit | 9a7de8782afdbcffefeb6d45670f636202a032b5 (patch) | |
tree | 7f6be92dca4dd4488f23ece2093f3657a1aed945 | |
parent | 5d250353e1a46a58cedfa081470a67a558db9457 (diff) |
QShaderProgram creates creation changes
Change-Id: Ibbafc8494ea867c9b74bf8054c7ff37ac79252dc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r-- | src/render/materialsystem/qshaderprogram.cpp | 14 | ||||
-rw-r--r-- | src/render/materialsystem/qshaderprogram.h | 1 | ||||
-rw-r--r-- | src/render/materialsystem/qshaderprogram_p.h | 10 |
3 files changed, 25 insertions, 0 deletions
diff --git a/src/render/materialsystem/qshaderprogram.cpp b/src/render/materialsystem/qshaderprogram.cpp index fcb7519d8..2c44444ee 100644 --- a/src/render/materialsystem/qshaderprogram.cpp +++ b/src/render/materialsystem/qshaderprogram.cpp @@ -265,6 +265,20 @@ QByteArray QShaderProgram::loadSource(const QUrl &sourceUrl) return deincludify(Qt3DRender::QUrlHelper::urlToLocalFileOrQrc(sourceUrl)); } +Qt3DCore::QNodeCreatedChangeBasePtr QShaderProgram::createNodeCreationChange() const +{ + auto creationChange = Qt3DCore::QNodeCreatedChangePtr<QShaderProgramData>::create(this); + auto &data = creationChange->data; + Q_D(const QShaderProgram); + data.vertexShaderCode = d->m_vertexShaderCode; + data.tessellationControlShaderCode = d->m_tessControlShaderCode; + data.tessellationEvaluationShaderCode = d->m_tessEvalShaderCode; + data.geometryShaderCode = d->m_geometryShaderCode; + data.fragmentShaderCode = d->m_fragmentShaderCode; + data.computeShaderCode = d->m_computeShaderCode; + return creationChange; +} + } // of namespace Qt3DRender QT_END_NAMESPACE diff --git a/src/render/materialsystem/qshaderprogram.h b/src/render/materialsystem/qshaderprogram.h index 0df08588a..984dfe833 100644 --- a/src/render/materialsystem/qshaderprogram.h +++ b/src/render/materialsystem/qshaderprogram.h @@ -109,6 +109,7 @@ protected: private: Q_DECLARE_PRIVATE(QShaderProgram) QT3D_CLONEABLE(QShaderProgram) + Qt3DCore::QNodeCreatedChangeBasePtr createNodeCreationChange() const Q_DECL_OVERRIDE; }; } diff --git a/src/render/materialsystem/qshaderprogram_p.h b/src/render/materialsystem/qshaderprogram_p.h index d26b0becc..5f695a279 100644 --- a/src/render/materialsystem/qshaderprogram_p.h +++ b/src/render/materialsystem/qshaderprogram_p.h @@ -79,6 +79,16 @@ public: QByteArray m_computeShaderCode; }; +struct QShaderProgramData +{ + QByteArray vertexShaderCode; + QByteArray tessellationControlShaderCode; + QByteArray tessellationEvaluationShaderCode; + QByteArray geometryShaderCode; + QByteArray fragmentShaderCode; + QByteArray computeShaderCode; +}; + } // namespace Qt3DRender QT_END_NAMESPACE |