summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2020-09-17 15:25:03 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-09-18 12:13:15 +0000
commit5451edeb79cc0c9816220fb60f9c6f0ba275fa02 (patch)
tree5399dd0bccf741bfd746fa63d1fe3626bc115efd /src
parent9a653be77429cc85e7a1481f0925b59bc4b7e4d6 (diff)
QShaderGenerator: add a #define LAYER_name for each layer
This will make it more convenient to insert conditional code based on whether a layer is defined or not. Change-Id: Ia72b569f022dd2ee723bf2493710eab709042639 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 7889cf1c6f9790391690ce31f391529b2dd8230e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/render/shadergraph/qshadergenerator.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/render/shadergraph/qshadergenerator.cpp b/src/render/shadergraph/qshadergenerator.cpp
index f80502fcc..a33110719 100644
--- a/src/render/shadergraph/qshadergenerator.cpp
+++ b/src/render/shadergraph/qshadergenerator.cpp
@@ -507,6 +507,17 @@ namespace
}
}
}
+
+ QByteArrayList layerDefines(const QStringList &enabledLayers) noexcept
+ {
+ QByteArrayList defines;
+ const QString defineTemplate = QStringLiteral("#define LAYER_%1");
+
+ for (const QString &layer : enabledLayers)
+ defines << defineTemplate.arg(layer).toUtf8();
+
+ return defines;
+ }
}
QByteArray QShaderGenerator::createShaderCode(const QStringList &enabledLayers) const
@@ -518,6 +529,7 @@ QByteArray QShaderGenerator::createShaderCode(const QStringList &enabledLayers)
code << versionString(format);
code << QByteArray();
+ code << layerDefines(enabledLayers);
if (format.api() == QShaderFormat::VulkanFlavoredGLSL || format.api() == QShaderFormat::RHI) {
GLSL45HeaderWriter builder;