diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2020-09-17 15:25:03 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2020-09-18 12:13:15 +0000 |
commit | 5451edeb79cc0c9816220fb60f9c6f0ba275fa02 (patch) | |
tree | 5399dd0bccf741bfd746fa63d1fe3626bc115efd /src | |
parent | 9a653be77429cc85e7a1481f0925b59bc4b7e4d6 (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.cpp | 12 |
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; |