         case MixBlendMode_Luminosity:
             result.rgb = Luminosity(Cb.rgb, Cs.rgb);
             break;
+        case MixBlendMode_Screen:
+        case MixBlendMode_Exclusion:
         case MixBlendMode_PlusLighter:
             // This should be unreachable, since we implement
+            // MixBlendMode::Screen, MixBlendMode::Exclusion and
             // MixBlendMode::PlusLighter using glBlendFuncSeparate.
             break;
         default: break;

        case MixBlendMode_Difference:
            result.rgb = Difference(Cb.rgb, Cs.rgb);
            break;
        case MixBlendMode_Exclusion:
            result.rgb = Exclusion(Cb.rgb, Cs.rgb);
            break;
        case MixBlendMode_Hue:
            result.rgb = Hue(Cb.rgb, Cs.rgb);
            break;


vec3 Difference(vec3 Cb, vec3 Cs) {
    return abs(Cb - Cs);
}

// These functions below are taken from the spec.
