diff --git a/effects/logout/CMakeLists.txt b/effects/logout/CMakeLists.txt index c3316bc21c..aa37fd7b1d 100644 --- a/effects/logout/CMakeLists.txt +++ b/effects/logout/CMakeLists.txt @@ -15,6 +15,13 @@ install( FILES # Data files install( FILES - logout/data/vignetting.frag - logout/data/logout-blur.frag - DESTINATION ${DATA_INSTALL_DIR}/kwin ) + logout/data/1.10/vignetting.frag + logout/data/1.10/logout-blur.frag + DESTINATION ${DATA_INSTALL_DIR}/kwin/shaders/1.10 +) + +install( FILES + logout/data/1.40/vignetting.frag + logout/data/1.40/logout-blur.frag + DESTINATION ${DATA_INSTALL_DIR}/kwin/shaders/1.40 +) diff --git a/effects/logout/data/logout-blur.frag b/effects/logout/data/1.10/logout-blur.frag similarity index 100% rename from effects/logout/data/logout-blur.frag rename to effects/logout/data/1.10/logout-blur.frag diff --git a/effects/logout/data/vignetting.frag b/effects/logout/data/1.10/vignetting.frag similarity index 100% rename from effects/logout/data/vignetting.frag rename to effects/logout/data/1.10/vignetting.frag diff --git a/effects/logout/data/logout-blur-140.frag b/effects/logout/data/1.40/logout-blur.frag similarity index 100% rename from effects/logout/data/logout-blur-140.frag rename to effects/logout/data/1.40/logout-blur.frag diff --git a/effects/logout/data/vignetting-140.frag b/effects/logout/data/1.40/vignetting.frag similarity index 100% rename from effects/logout/data/vignetting-140.frag rename to effects/logout/data/1.40/vignetting.frag diff --git a/effects/logout/logout.cpp b/effects/logout/logout.cpp index 86ccc4e7ea..454bcf5a3e 100644 --- a/effects/logout/logout.cpp +++ b/effects/logout/logout.cpp @@ -50,6 +50,7 @@ LogoutEffect::LogoutEffect() , ignoredWindows() , m_vignettingShader(NULL) , m_blurShader(NULL) + , m_shadersDir("kwin/shaders/1.10/") { // Persistent effect logoutAtom = XInternAtom(display(), "_KDE_LOGGING_OUT", False); @@ -71,6 +72,14 @@ LogoutEffect::LogoutEffect() connect(effects, SIGNAL(windowClosed(KWin::EffectWindow*)), this, SLOT(slotWindowClosed(KWin::EffectWindow*))); connect(effects, SIGNAL(windowDeleted(KWin::EffectWindow*)), this, SLOT(slotWindowDeleted(KWin::EffectWindow*))); connect(effects, SIGNAL(propertyNotify(KWin::EffectWindow*,long)), this, SLOT(slotPropertyNotify(KWin::EffectWindow*,long))); + +#ifdef KWIN_HAVE_OPENGLES + const qint64 coreVersionNumber = kVersionNumber(3, 0); +#else + const qint64 coreVersionNumber = kVersionNumber(1, 40); +#endif + if (GLPlatform::instance()->glslVersion() >= coreVersionNumber) + m_shadersDir = "kwin/shaders/1.40/"; } LogoutEffect::~LogoutEffect() @@ -296,10 +305,8 @@ void LogoutEffect::renderVignetting() return; } if (!m_vignettingShader) { - const char *shader = GLPlatform::instance()->glslVersion() >= kVersionNumber(1, 40) ? - "kwin/vignetting-140.frag" : "kwin/vignetting.frag"; m_vignettingShader = ShaderManager::instance()->loadFragmentShader(KWin::ShaderManager::ColorShader, - KGlobal::dirs()->findResource("data", shader)); + KGlobal::dirs()->findResource("data", m_shadersDir + "vignetting.frag")); if (!m_vignettingShader->isValid()) { kDebug(1212) << "Vignetting Shader failed to load"; return; @@ -378,10 +385,8 @@ void LogoutEffect::renderBlurTexture() return; } if (!m_blurShader) { - const char *shader = GLPlatform::instance()->glslVersion() >= kVersionNumber(1, 40) ? - "kwin/logout-blur-140.frag" : "kwin/logout-blur.frag"; m_blurShader = ShaderManager::instance()->loadFragmentShader(KWin::ShaderManager::SimpleShader, - KGlobal::dirs()->findResource("data", shader)); + KGlobal::dirs()->findResource("data", m_shadersDir + "logout-blur.frag")); if (!m_blurShader->isValid()) { kDebug(1212) << "Logout blur shader failed to load"; } diff --git a/effects/logout/logout.h b/effects/logout/logout.h index 18fe279232..dee53bc992 100644 --- a/effects/logout/logout.h +++ b/effects/logout/logout.h @@ -82,6 +82,7 @@ private: QHash< EffectWindow*, double > windowsOpacities; GLShader *m_vignettingShader; GLShader *m_blurShader; + QString m_shadersDir; }; } // namespace