From 8240f3333f6b0198cd1f9dd171f128d204c3eec7 Mon Sep 17 00:00:00 2001 From: David Salvisberg Date: Wed, 31 Dec 2014 16:02:10 +0100 Subject: [PATCH] Fixed hue shader turning pure white pixel to pure black on some GPUs. --- shader/hue.frag | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/shader/hue.frag b/shader/hue.frag index 416ee9b..405c91b 100644 --- a/shader/hue.frag +++ b/shader/hue.frag @@ -29,7 +29,11 @@ void main () /* Make the user's adjustments */ hue += hueAdjust; - // Convert back to YIQ + /* Remember old I and color */ + float IOriginal = I; + vec4 coOriginal = color; + + /* Convert back to YIQ */ Q = chroma * sin (hue); I = chroma * cos (hue); @@ -40,5 +44,5 @@ void main () color.b = dot (yIQ, kYIQToB); /* Save the result */ - gl_FragColor = color; + gl_FragColor = (IOriginal == 0.0) ? coOriginal : color; }