summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-07-05 11:38:31 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-09-07 12:57:45 +0000
commitf2a06fcd0e1542d2b20e7e3a0fb42d19c7cad66a (patch)
treea687e75e5b9c01a254a5941a787e67172a47bf98
parent432da61aa30455bdf6a369c71a15d8a7de49430c (diff)
Parameter: store a UniformValue
Should soon allow to get rid of QVariant Change-Id: I85b37fd013523eecdccb747d2835b5d25145022a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/render/materialsystem/parameter.cpp7
-rw-r--r--src/render/materialsystem/parameter_p.h3
2 files changed, 10 insertions, 0 deletions
diff --git a/src/render/materialsystem/parameter.cpp b/src/render/materialsystem/parameter.cpp
index b13c0d5ae..22724552b 100644
--- a/src/render/materialsystem/parameter.cpp
+++ b/src/render/materialsystem/parameter.cpp
@@ -69,6 +69,7 @@ void Parameter::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &ch
m_name = data.name;
m_nameId = StringToInt::lookupId(m_name);
m_value = data.backendValue;
+ m_uniformValue = UniformValue::fromVariant(data.backendValue);
}
void Parameter::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e)
@@ -81,6 +82,7 @@ void Parameter::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e)
m_nameId = StringToInt::lookupId(m_name);
} else if (propertyChange->propertyName() == QByteArrayLiteral("value")) {
m_value = propertyChange->value();
+ m_uniformValue = UniformValue::fromVariant(propertyChange->value());
}
markDirty(AbstractRenderer::AllDirty);
}
@@ -103,6 +105,11 @@ int Parameter::nameId() const Q_DECL_NOTHROW
return m_nameId;
}
+UniformValue Parameter::uniformValue() const
+{
+ return m_uniformValue;
+}
+
} // namespace Render
} // namespace Qt3DRender
diff --git a/src/render/materialsystem/parameter_p.h b/src/render/materialsystem/parameter_p.h
index c5c94243d..6e9833e1a 100644
--- a/src/render/materialsystem/parameter_p.h
+++ b/src/render/materialsystem/parameter_p.h
@@ -52,6 +52,7 @@
//
#include <Qt3DRender/private/backendnode_p.h>
+#include <Qt3DRender/private/uniform_p.h>
#include <QVariant>
QT_BEGIN_NAMESPACE
@@ -74,12 +75,14 @@ public:
QString name() const;
QVariant value() const;
int nameId() const Q_DECL_NOTHROW;
+ UniformValue uniformValue() const;
private:
void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) Q_DECL_FINAL;
QString m_name;
QVariant m_value;
+ UniformValue m_uniformValue;
int m_nameId;
};