public virtual NSColor BlendedColorWithFraction(double fraction, NSColor aColor)
{
NSColor myColor = ColorUsingColorSpaceName(NSColorSpace.NSCalibratedRGBColorSpace);
NSColor other = aColor.ColorUsingColorSpaceName(NSColorSpace.NSCalibratedRGBColorSpace);
double mr, mg, mb, ma, or, og, ob, oa, red, green, blue, alpha;
if (fraction <= 0.0f)
{
return this;
}
if (fraction >= 1.0f)
{
return aColor;
}
if (myColor == null || other == null)
{
return null;
}
mr = mg = mb = ma = 0;
myColor.GetRedGreenBlueAlpha(ref mr, ref mg, ref mb, ref ma);
or = og = ob = oa = 0;
other.GetRedGreenBlueAlpha(ref or, ref og, ref ob, ref oa);
red = fraction * or + (1 - fraction) * mr;
green = fraction * og + (1 - fraction) * mg;
blue = fraction * ob + (1 - fraction) * mb;
alpha = fraction * oa + (1 - fraction) * ma;
return ColorWithCalibratedRed(red, green, blue, alpha);
// return [NSColorClass colorWithCalibratedRed: red green: green blue: blue alpha: alpha];
}