kwin/effects/blur/data/blur-render.frag
Lucas Murray 846496d2c1 Cleaned up the effects/ directory by moving each individual effect into
its own directory, cleaned up the effect config macros and renamed
"MakeTransparent" to "Translucency" so that it matches its visible name.

svn path=/trunk/KDE/kdebase/workspace/; revision=921749
2009-02-05 15:35:38 +00:00

40 lines
1.1 KiB
GLSL

uniform sampler2D windowTex;
uniform sampler2D backgroundTex;
uniform float textureWidth;
uniform float textureHeight;
uniform float opacity;
uniform float saturation;
uniform float brightness;
// Converts pixel coordinates to texture coordinates
vec2 pix2tex(vec2 pix)
{
return vec2(pix.x / textureWidth, pix.y / textureHeight);
}
// Returns color of the window at given texture coordinate, taking into
// account brightness and saturation, but not opacity
vec4 windowColor(vec2 texcoord)
{
vec4 color = texture2D(windowTex, texcoord);
// Apply saturation
float grayscale = dot(vec3(0.30, 0.59, 0.11), color.rgb);
color.rgb = mix(vec3(grayscale), color.rgb, saturation);
// Apply brightness
color.rgb = color.rgb * brightness;
// and return
return color;
}
void main()
{
vec2 blurtexcoord = pix2tex(gl_FragCoord.xy);
vec4 winColor = windowColor(gl_TexCoord[0].xy);
vec3 tex = mix(texture2D(backgroundTex, blurtexcoord).rgb,
winColor.rgb, winColor.a * opacity);
gl_FragColor = vec4(tex, pow(winColor.a, 0.2));
}