kwin/logout: Add GLSL 1.40 versions of the shaders
This commit is contained in:
parent
a3d907d748
commit
9006e0e465
3 changed files with 33 additions and 2 deletions
14
effects/logout/data/logout-blur-140.frag
Normal file
14
effects/logout/data/logout-blur-140.frag
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#version 140
|
||||||
|
|
||||||
|
uniform sampler2D sampler;
|
||||||
|
uniform float u_alphaProgress;
|
||||||
|
|
||||||
|
in vec2 varyingTexCoords;
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 texel = texture(sampler, varyingTexCoords, 1.75);
|
||||||
|
texel.a = u_alphaProgress;
|
||||||
|
|
||||||
|
fragColor = texel;
|
||||||
|
}
|
12
effects/logout/data/vignetting-140.frag
Normal file
12
effects/logout/data/vignetting-140.frag
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#version 140
|
||||||
|
|
||||||
|
uniform vec2 u_center;
|
||||||
|
uniform float u_radius;
|
||||||
|
uniform float u_progress;
|
||||||
|
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
float d = smoothstep(0, u_radius, distance(gl_FragCoord.xy, u_center));
|
||||||
|
fragColor = vec4(0.0, 0.0, 0.0, d * u_progress);
|
||||||
|
}
|
|
@ -25,6 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include "logoutconfig.h"
|
#include "logoutconfig.h"
|
||||||
|
|
||||||
#include "kwinglutils.h"
|
#include "kwinglutils.h"
|
||||||
|
#include "kwinglplatform.h"
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <kdebug.h>
|
#include <kdebug.h>
|
||||||
|
@ -295,8 +296,10 @@ void LogoutEffect::renderVignetting()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!m_vignettingShader) {
|
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,
|
m_vignettingShader = ShaderManager::instance()->loadFragmentShader(KWin::ShaderManager::ColorShader,
|
||||||
KGlobal::dirs()->findResource("data", "kwin/vignetting.frag"));
|
KGlobal::dirs()->findResource("data", shader));
|
||||||
if (!m_vignettingShader->isValid()) {
|
if (!m_vignettingShader->isValid()) {
|
||||||
kDebug(1212) << "Vignetting Shader failed to load";
|
kDebug(1212) << "Vignetting Shader failed to load";
|
||||||
return;
|
return;
|
||||||
|
@ -375,8 +378,10 @@ void LogoutEffect::renderBlurTexture()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!m_blurShader) {
|
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,
|
m_blurShader = ShaderManager::instance()->loadFragmentShader(KWin::ShaderManager::SimpleShader,
|
||||||
KGlobal::dirs()->findResource("data", "kwin/logout-blur.frag"));
|
KGlobal::dirs()->findResource("data", shader));
|
||||||
if (!m_blurShader->isValid()) {
|
if (!m_blurShader->isValid()) {
|
||||||
kDebug(1212) << "Logout blur shader failed to load";
|
kDebug(1212) << "Logout blur shader failed to load";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue