diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2024-01-30 14:49:29 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2024-01-30 13:49:21 +0000 |
commit | e617fc96db7f4ea52223aaaa4f1a3e60b334c64e (patch) | |
tree | 4efc6f14cd3f0d3a3e2673d5f579a9ade016b988 | |
parent | 3ec2cd1f0bfcd1df1ae6e032ec0ce2b5902b3e97 (diff) |
EffectComposer: Fix generated code for mipmap effects
Mipmap effects need layer.smooth and layer.mipmap to work correctly.
Fixes: QDS-11793
Change-Id: I8f04ca9f144f51d0032d995c2bafdcb0c95ad73d
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
-rw-r--r-- | src/plugins/effectcomposer/effectcomposermodel.cpp | 14 | ||||
-rw-r--r-- | src/plugins/effectcomposer/shaderfeatures.cpp | 4 | ||||
-rw-r--r-- | src/plugins/effectcomposer/shaderfeatures.h | 3 |
3 files changed, 20 insertions, 1 deletions
diff --git a/src/plugins/effectcomposer/effectcomposermodel.cpp b/src/plugins/effectcomposer/effectcomposermodel.cpp index 966465ff31..1edc70c75b 100644 --- a/src/plugins/effectcomposer/effectcomposermodel.cpp +++ b/src/plugins/effectcomposer/effectcomposermodel.cpp @@ -618,6 +618,20 @@ R"( )" }; + if (m_shaderFeatures.enabled(ShaderFeatures::Mipmap)) { + QString mipmap1{ + R"(parent.layer.smooth = true + parent.layer.mipmap = true + %1)" + }; + QString mipmap2{ + R"(_oldParent.layer.smooth = false + _oldParent.layer.mipmap = false + %2)" + }; + parentChanged = parentChanged.arg(mipmap1, mipmap2); + } + parentChanged = parentChanged.arg(m_shaderFeatures.enabled(ShaderFeatures::Source) ? QString("source = parent") : QString(), m_shaderFeatures.enabled(ShaderFeatures::Source) diff --git a/src/plugins/effectcomposer/shaderfeatures.cpp b/src/plugins/effectcomposer/shaderfeatures.cpp index 5690db5f17..fc1cf95a34 100644 --- a/src/plugins/effectcomposer/shaderfeatures.cpp +++ b/src/plugins/effectcomposer/shaderfeatures.cpp @@ -73,8 +73,12 @@ void ShaderFeatures::checkLine(const QString &line, Features &features) if (m_gridMeshWidth > 1 || m_gridMeshHeight > 1) features.setFlag(GridMesh, true); } + if (line.contains("@blursources")) features.setFlag(BlurSources, true); + + if (line.contains("textureLod(")) + features.setFlag(Mipmap, true); } int ShaderFeatures::gridMeshHeight() const diff --git a/src/plugins/effectcomposer/shaderfeatures.h b/src/plugins/effectcomposer/shaderfeatures.h index 10418c7f81..30bf9e6851 100644 --- a/src/plugins/effectcomposer/shaderfeatures.h +++ b/src/plugins/effectcomposer/shaderfeatures.h @@ -19,7 +19,8 @@ public: Mouse = 1 << 4, FragCoord = 1 << 5, GridMesh = 1 << 6, - BlurSources = 1 << 7 + BlurSources = 1 << 7, + Mipmap = 1 << 8 }; Q_DECLARE_FLAGS(Features, Feature) |