diff options
author | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2022-08-16 20:36:54 +0300 |
---|---|---|
committer | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2022-08-16 20:36:54 +0300 |
commit | a537b1e4e0b9821850ddf77ef1f2178df8de3d43 (patch) | |
tree | e57a4443bcb94a4d9291aed4665343244d65a9ac /src/render/shadergraph | |
parent | e1b9039ca879ab3714a3f67301378f43334e4b1d (diff) | |
parent | ff866ee201ba2ab62d3bdd9f6358612fbcd6128e (diff) |
Merge remote-tracking branch 'origin/tqtc/lts-5.15.6' into tqtc/lts-5.15-opensourcev5.15.6-lts-lgpl
Change-Id: I78ddafff7a563a17c7e9ce31249faf05dc6cda69
Diffstat (limited to 'src/render/shadergraph')
-rw-r--r-- | src/render/shadergraph/qshadernode.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/render/shadergraph/qshadernode.cpp b/src/render/shadergraph/qshadernode.cpp index e0421e006..56c9961f3 100644 --- a/src/render/shadergraph/qshadernode.cpp +++ b/src/render/shadergraph/qshadernode.cpp @@ -152,11 +152,15 @@ QVector<QShaderFormat> QShaderNode::availableFormats() const QShaderNode::Rule QShaderNode::rule(const QShaderFormat &format) const { - const auto it = std::find_if(m_rules.crbegin(), m_rules.crend(), - [format](const QPair<QShaderFormat, Rule> &entry) { - return format.supports(entry.first); - }); - return it != m_rules.crend() ? it->second : Rule(); + const QPair<QShaderFormat, Rule> *selected = nullptr; + for (auto it = m_rules.crbegin(); it != m_rules.crend(); ++it) { + const auto &entry = *it; + if (format.supports(entry.first)) { + if (!selected || entry.first.version() > selected->first.version()) + selected = &entry; + } + } + return selected ? selected->second : Rule(); } QShaderNode::Rule::Rule(const QByteArray &subs, const QByteArrayList &snippets) noexcept |