/usr/share/movit/gamma_compression_effect.frag is in libmovit5 1.4.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | // Compress gamma curve.
// Implicit uniforms:
// uniform float PREFIX(linear_scale);
// uniform float PREFIX(c)[5];
// uniform float PREFIX(beta);
vec4 FUNCNAME(vec2 tc) {
vec4 x = INPUT(tc);
// We could reasonably get values outside (0.0, 1.0), but the formulas below
// are not valid outside that range, so clamp before we do anything else.
x.rgb = clamp(x.rgb, 0.0, 1.0);
vec3 a = x.rgb * PREFIX(linear_scale);
// Fourth-order polynomial approximation to pow(). See the .cpp file for details.
vec3 s = sqrt(x.rgb);
vec3 b = PREFIX(c)[0] + (PREFIX(c)[1] + (PREFIX(c)[2] + (PREFIX(c)[3] + PREFIX(c)[4] * s) * s) * s) * s;
vec3 f = vec3(greaterThan(x.rgb, vec3(PREFIX(beta))));
x = vec4(mix(a, b, f), x.a);
return x;
}
|