1#property description CGA mode 1: black, cyan, magenta, white 2 3void main(void) { 4 // This is pretty gross 5 vec4 oc = texture(iInput, uv); 6 vec3 c = oc.rgb; 7 c = min(c / max(oc.a, 0.001), 1.); 8 float bDist = -length(c - vec3(0., 0., 0.)); 9 float wDist = -length(c - vec3(1., 1., 1.)); 10 float cDist = -length(c - vec3(0., 1., 1.)); 11 float mDist = -length(c - vec3(1., 0., 1.)); 12 13 if (wDist > bDist && wDist > cDist && wDist > mDist) { 14 c = vec3(1., 1., 1.); 15 } else if (cDist > bDist && cDist > wDist && cDist > mDist) { 16 c = vec3(0., 1., 1.); 17 } else if (mDist > bDist && mDist > wDist && mDist > cDist) { 18 c = vec3(1., 0., 1.); 19 } else { 20 c = vec3(0., 0., 0.); 21 } 22 23 fragColor.rgb = mix(oc.rgb, c, iIntensity * pow(defaultPulse, 2.)); 24 fragColor.a = oc.a; 25} 26