Add the layer concept to QShaderNode and QShaderGraph::Edge
This will be used in further commits Change-Id: I49977f1ea482b97dc0a159f69a0d2eda3865ec44 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>bb10
parent
3d5c4ce01e
commit
32281653bf
|
|
@ -63,6 +63,7 @@ public:
|
|||
class Edge
|
||||
{
|
||||
public:
|
||||
QStringList layers;
|
||||
QUuid sourceNodeUuid;
|
||||
QString sourcePortName;
|
||||
QUuid targetNodeUuid;
|
||||
|
|
|
|||
|
|
@ -72,6 +72,16 @@ void QShaderNode::setUuid(const QUuid &uuid) Q_DECL_NOTHROW
|
|||
m_uuid = uuid;
|
||||
}
|
||||
|
||||
QStringList QShaderNode::layers() const Q_DECL_NOTHROW
|
||||
{
|
||||
return m_layers;
|
||||
}
|
||||
|
||||
void QShaderNode::setLayers(const QStringList &layers) Q_DECL_NOTHROW
|
||||
{
|
||||
m_layers = layers;
|
||||
}
|
||||
|
||||
QVector<QShaderNodePort> QShaderNode::ports() const Q_DECL_NOTHROW
|
||||
{
|
||||
return m_ports;
|
||||
|
|
|
|||
|
|
@ -84,6 +84,9 @@ public:
|
|||
Q_GUI_EXPORT QUuid uuid() const Q_DECL_NOTHROW;
|
||||
Q_GUI_EXPORT void setUuid(const QUuid &uuid) Q_DECL_NOTHROW;
|
||||
|
||||
Q_GUI_EXPORT QStringList layers() const Q_DECL_NOTHROW;
|
||||
Q_GUI_EXPORT void setLayers(const QStringList &layers) Q_DECL_NOTHROW;
|
||||
|
||||
Q_GUI_EXPORT QVector<QShaderNodePort> ports() const Q_DECL_NOTHROW;
|
||||
Q_GUI_EXPORT void addPort(const QShaderNodePort &port);
|
||||
Q_GUI_EXPORT void removePort(const QShaderNodePort &port);
|
||||
|
|
@ -101,6 +104,7 @@ public:
|
|||
|
||||
private:
|
||||
QUuid m_uuid;
|
||||
QStringList m_layers;
|
||||
QVector<QShaderNodePort> m_ports;
|
||||
QHash<QString, QVariant> m_parameters;
|
||||
QVector<QPair<QShaderFormat, QShaderNode::Rule>> m_rules;
|
||||
|
|
|
|||
|
|
@ -41,23 +41,26 @@ namespace
|
|||
return port;
|
||||
}
|
||||
|
||||
QShaderNode createNode(const QVector<QShaderNodePort> &ports)
|
||||
QShaderNode createNode(const QVector<QShaderNodePort> &ports, const QStringList &layers = QStringList())
|
||||
{
|
||||
auto node = QShaderNode();
|
||||
node.setUuid(QUuid::createUuid());
|
||||
node.setLayers(layers);
|
||||
for (const auto &port : ports)
|
||||
node.addPort(port);
|
||||
return node;
|
||||
}
|
||||
|
||||
QShaderGraph::Edge createEdge(const QUuid &sourceUuid, const QString &sourceName,
|
||||
const QUuid &targetUuid, const QString &targetName)
|
||||
const QUuid &targetUuid, const QString &targetName,
|
||||
const QStringList &layers = QStringList())
|
||||
{
|
||||
auto edge = QShaderGraph::Edge();
|
||||
edge.sourceNodeUuid = sourceUuid;
|
||||
edge.sourcePortName = sourceName;
|
||||
edge.targetNodeUuid = targetUuid;
|
||||
edge.targetPortName = targetName;
|
||||
edge.layers = layers;
|
||||
return edge;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -351,6 +351,7 @@ void tst_QShaderNodes::shouldManipulateNodeMembers()
|
|||
// THEN (default state)
|
||||
QCOMPARE(node.type(), QShaderNode::Invalid);
|
||||
QVERIFY(node.uuid().isNull());
|
||||
QVERIFY(node.layers().isEmpty());
|
||||
QVERIFY(node.ports().isEmpty());
|
||||
QVERIFY(node.parameterNames().isEmpty());
|
||||
QVERIFY(node.availableFormats().isEmpty());
|
||||
|
|
@ -362,6 +363,12 @@ void tst_QShaderNodes::shouldManipulateNodeMembers()
|
|||
// THEN
|
||||
QCOMPARE(node.uuid(), uuid);
|
||||
|
||||
// WHEN
|
||||
node.setLayers({"foo", "bar"});
|
||||
|
||||
// THEN
|
||||
QCOMPARE(node.layers(), QStringList({"foo", "bar"}));
|
||||
|
||||
// WHEN
|
||||
auto firstPort = QShaderNodePort();
|
||||
firstPort.direction = QShaderNodePort::Input;
|
||||
|
|
|
|||
Loading…
Reference in New Issue