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

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