Warning, /plasma/kwin/src/plugins/invert/shaders/invert.frag is written in an unsupported language. File is not indexed.

0001 #include "colormanagement.glsl"
0002 #include "saturation.glsl"
0003 
0004 uniform sampler2D sampler;
0005 uniform vec4 modulation;
0006 
0007 varying vec2 texcoord0;
0008 
0009 void main()
0010 {
0011     vec4 tex = texture2D(sampler, texcoord0);
0012     tex = sourceEncodingToNitsInDestinationColorspace(tex);
0013     tex = adjustSaturation(tex);
0014 
0015     // to preserve perceptual contrast, apply the inversion in gamma 2.2 space
0016     tex = nitsToEncoding(tex, gamma22_EOTF);
0017     tex.rgb /= max(0.001, tex.a);
0018     tex.rgb = vec3(1.0) - tex.rgb;
0019     tex *= modulation;
0020     tex.rgb *= tex.a;
0021     tex = encodingToNits(tex, gamma22_EOTF);
0022 
0023     gl_FragColor = nitsToDestinationEncoding(tex);
0024 }