From 417f43b0c540757e56c21f048def6507e907615e Mon Sep 17 00:00:00 2001 From: Sean Harmer Date: Fri, 1 Apr 2016 14:54:30 +0100 Subject: Shader handles creation Change-Id: I0705d14a4d7c5a9ce6df5274ff8e59414f55e695 Reviewed-by: Paul Lemire --- src/render/materialsystem/shader.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'src/render/materialsystem/shader.cpp') diff --git a/src/render/materialsystem/shader.cpp b/src/render/materialsystem/shader.cpp index 963d3f3e6..fa1a396b5 100644 --- a/src/render/materialsystem/shader.cpp +++ b/src/render/materialsystem/shader.cpp @@ -45,10 +45,11 @@ #include #include #include -#include #include -#include +#include +#include #include +#include QT_BEGIN_NAMESPACE @@ -104,6 +105,24 @@ void Shader::updateFromPeer(Qt3DCore::QNode *peer) updateDNA(); } +void Shader::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) +{ + const auto typedChange = qSharedPointerCast>(change); + const auto &data = typedChange->data; + + for (int i = QShaderProgram::Vertex; i <= QShaderProgram::Compute; ++i) + m_shaderCode[i].clear(); + + m_shaderCode[QShaderProgram::Vertex] = data.vertexShaderCode; + m_shaderCode[QShaderProgram::TessellationControl] = data.tessellationControlShaderCode; + m_shaderCode[QShaderProgram::TessellationEvaluation] = data.tessellationEvaluationShaderCode; + m_shaderCode[QShaderProgram::Geometry] = data.geometryShaderCode; + m_shaderCode[QShaderProgram::Fragment] = data.fragmentShaderCode; + m_shaderCode[QShaderProgram::Compute] = data.computeShaderCode; + m_isLoaded = false; + updateDNA(); +} + QVector Shader::uniformsNames() const { return m_uniformsNames; -- cgit v1.2.3