/* Hue-Saturation filter from MariENB, ported over from GIMP (C)2007 Michael Natterer (C)2012-2019 Marisa Kirisame */ vec3 rgb2hsv( vec3 c ) { vec4 K = vec4(0.0,-1.0/3.0,2.0/3.0,-1.0); vec4 p = (c.g 0.0) && (ch > ht-hsover) ) { usesh = true; sh = ph+1; sv = (ch-ht+hsover)/(2.0*hsover); pv = 1.0-sv; } else usesh = false; break; } } if ( ph >= 6 ) { ph = 0; usesh = false; } if ( sh >= 6 ) sh = 0; if ( usesh ) { hsv.x = hs_hue_overlap(hues[ph]*pv,hues[sh]*sv,hsv.x); hsv.y = hs_sat(sats[ph],hsv.y)*pv+hs_sat(sats[sh],hsv.y)*sv; hsv.z = hs_val(vals[ph],hsv.z)*pv+hs_val(vals[sh],hsv.z)*sv; } else { hsv.x = hs_hue(hues[ph],hsv.x); hsv.y = hs_sat(sats[ph],hsv.y); hsv.z = hs_val(vals[ph],hsv.z); } res.rgb = hsv2rgb(hsv); FragColor = res; }