]> git.sesse.net Git - movit/blobdiff - lift_gamma_gain_effect.frag
Mark a already-done TODO as fixed.
[movit] / lift_gamma_gain_effect.frag
index 9047d64bbc2230c263e6fb5a6025642435cf8cd0..ceb2081c752591e71277b10af64e8e499f2f2cb1 100644 (file)
@@ -1,6 +1,8 @@
+// Implicit uniforms:
+//
 // These are calculated in the host code to save some arithmetic.
-uniform vec3 PREFIX(gain_pow_inv_gamma);  // gain^(1/gamma).
-uniform vec3 PREFIX(inv_gamma_22);  // 2.2 / gamma.
+// uniform vec3 PREFIX(gain_pow_inv_gamma);  // gain^(1/gamma).
+// uniform vec3 PREFIX(inv_gamma_22);  // 2.2 / gamma.
 
 vec4 FUNCNAME(vec2 tc) {
        vec4 x = INPUT(tc);
@@ -12,6 +14,10 @@ vec4 FUNCNAME(vec2 tc) {
 
        x.rgb = pow(x.rgb, vec3(1.0/2.2));
        x.rgb += PREFIX(lift) * (vec3(1) - x.rgb);
+
+       // Clip out-of-gamut values again.
+       x.rgb = max(x.rgb, 0.0);
+
        x.rgb = pow(x.rgb, PREFIX(inv_gamma_22));
        x.rgb *= PREFIX(gain_pow_inv_gamma);
        x.rgb *= x.aaa;