public static CGRect CGRectIntegral(CGRect rect)
{
CGRect result = new CGRect();
result.origin.x = (float)Math.Floor(rect.origin.x);
result.origin.y = (float)Math.Floor(rect.origin.y);
result.size.width = (float)Math.Ceiling(rect.origin.x + rect.size.width) - result.origin.x;
result.size.height = (float)Math.Ceiling(rect.origin.y + rect.size.height) - result.origin.y;
return result;
}