From ffe45e02dbae5d48d848070bc1c60c059c8cd929 Mon Sep 17 00:00:00 2001 From: Dmitriy Nikiforov Date: Thu, 16 Jan 2020 15:25:16 +0300 Subject: [PATCH] [compositor] Use shader texture from current theme. Contributes to JB#48627 --- src/compositor/hwcimage.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/compositor/hwcimage.cpp b/src/compositor/hwcimage.cpp index 1f180287..09dd67bb 100644 --- a/src/compositor/hwcimage.cpp +++ b/src/compositor/hwcimage.cpp @@ -18,6 +18,8 @@ #include "eglhybrisbuffer.h" +#include + #include #include @@ -30,6 +32,7 @@ #include #define HWCIMAGE_LOAD_EVENT ((QEvent::Type) (QEvent::User + 1)) +#define DEFAULT_THEME "sailfish-default" static QRgb swizzleWithAlpha(QRgb rgb) { @@ -161,7 +164,14 @@ class HwcImageLoadRequest : public QRunnable, public QEvent // Apply glass.. if (effect.contains(QStringLiteral("glass"))) { - QImage glass("/usr/share/themes/sailfish-default/meegotouch/icons/graphic-shader-texture.png"); + const auto shaderImageTemplate = QStringLiteral("/usr/share/themes/%1/meegotouch/icons/graphic-shader-texture.png"); + const auto themeName = MGConfItem("/meegotouch/theme/name").value(DEFAULT_THEME).toString(); + auto shaderImage = shaderImageTemplate.arg(themeName); + if (themeName != QStringLiteral(DEFAULT_THEME) && !QFile::exists(shaderImage)) { + qCDebug(LIPSTICK_LOG_HWC, "Shader texture file does not exist: %s", qPrintable(shaderImage)); + shaderImage = shaderImageTemplate.arg(DEFAULT_THEME); + } + QImage glass(shaderImage); if (rotation != 0) { // Counter rotate the glass effect so it is reset when the entire picture is rotated. QTransform transform;