diff options
author | Juan Jose Casafranca <juan.casafranca@kdab.com> | 2018-09-03 08:50:14 +0200 |
---|---|---|
committer | Juan José Casafranca <juan.casafranca@kdab.com> | 2018-09-08 17:11:06 +0000 |
commit | 5474f28c42ce0c853ddd08a8fd2f31948fcd968b (patch) | |
tree | b57502f385e229f449c2ee1ae857339aeb759f4d /src/gui/util/qshadergraphloader.cpp | |
parent | be60b541adb039bd7fed09bf8b2a2848f50d218e (diff) | |
download | qtbase-5474f28c42ce0c853ddd08a8fd2f31948fcd968b.tar.gz |
Graph loader can load prototypes stored in the graph
Change-Id: Ib0bbfe5b0257bf355e83cc5287fa52b1e0cc3ed6
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/gui/util/qshadergraphloader.cpp')
-rw-r--r-- | src/gui/util/qshadergraphloader.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/gui/util/qshadergraphloader.cpp b/src/gui/util/qshadergraphloader.cpp index 8d92c73a5a..99a9f7869e 100644 --- a/src/gui/util/qshadergraphloader.cpp +++ b/src/gui/util/qshadergraphloader.cpp @@ -39,6 +39,8 @@ #include "qshadergraphloader_p.h" +#include "qshadernodesloader_p.h" + #include <QtCore/qdebug.h> #include <QtCore/qiodevice.h> #include <QtCore/qjsonarray.h> @@ -129,6 +131,19 @@ void QShaderGraphLoader::load() bool hasError = false; + const auto prototypesValue = root.value(QStringLiteral("prototypes")); + if (!prototypesValue.isUndefined()) { + if (prototypesValue.isObject()) { + QShaderNodesLoader loader; + loader.load(prototypesValue.toObject()); + m_prototypes.unite(loader.nodes()); + } else { + qWarning() << "Invalid prototypes property, should be an object"; + m_status = Error; + return; + } + } + const auto nodes = nodesValue.toArray(); for (const auto &nodeValue : nodes) { if (!nodeValue.isObject()) { |