summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens@kdab.com>2017-07-05 16:13:45 +0200
committerSean Harmer <sean.harmer@kdab.com>2017-07-08 09:05:13 +0000
commitf7fefed2ea370073ff0828baf2c42cab894e1bd0 (patch)
tree6b0e3f2750b6803cd5638fc4e851bad483bc915b /src
parent74e9a113864106500a8bb39cfd6c4e6eb76d1c58 (diff)
Add parameters to QShaderNode
This will allow to create nodes having an entry point for tuning, still need to be exploited by the loaders and the shader generator. Coming in further commits. Change-Id: I8384b0f528c9919e9f8d35102adde2b307f08b80 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/util/qshadernode.cpp20
-rw-r--r--src/gui/util/qshadernode_p.h6
2 files changed, 26 insertions, 0 deletions
diff --git a/src/gui/util/qshadernode.cpp b/src/gui/util/qshadernode.cpp
index 36fddb2235..f255922c42 100644
--- a/src/gui/util/qshadernode.cpp
+++ b/src/gui/util/qshadernode.cpp
@@ -93,6 +93,26 @@ void QShaderNode::removePort(const QShaderNodePort &port)
m_ports.erase(it);
}
+QStringList QShaderNode::parameterNames() const
+{
+ return m_parameters.keys();
+}
+
+QVariant QShaderNode::parameter(const QString &name) const
+{
+ return m_parameters.value(name);
+}
+
+void QShaderNode::setParameter(const QString &name, const QVariant &value)
+{
+ m_parameters.insert(name, value);
+}
+
+void QShaderNode::clearParameter(const QString &name)
+{
+ m_parameters.remove(name);
+}
+
void QShaderNode::addRule(const QShaderFormat &format, const QShaderNode::Rule &rule)
{
removeRule(format);
diff --git a/src/gui/util/qshadernode_p.h b/src/gui/util/qshadernode_p.h
index b3e2d4a841..2f8bf1e438 100644
--- a/src/gui/util/qshadernode_p.h
+++ b/src/gui/util/qshadernode_p.h
@@ -88,6 +88,11 @@ public:
Q_GUI_EXPORT void addPort(const QShaderNodePort &port);
Q_GUI_EXPORT void removePort(const QShaderNodePort &port);
+ Q_GUI_EXPORT QStringList parameterNames() const;
+ Q_GUI_EXPORT QVariant parameter(const QString &name) const;
+ Q_GUI_EXPORT void setParameter(const QString &name, const QVariant &value);
+ Q_GUI_EXPORT void clearParameter(const QString &name);
+
Q_GUI_EXPORT void addRule(const QShaderFormat &format, const Rule &rule);
Q_GUI_EXPORT void removeRule(const QShaderFormat &format);
@@ -97,6 +102,7 @@ public:
private:
QUuid m_uuid;
QVector<QShaderNodePort> m_ports;
+ QHash<QString, QVariant> m_parameters;
QVector<QPair<QShaderFormat, QShaderNode::Rule>> m_rules;
};