public CTFont(CTFontDescriptor descriptor, float size, CTFontOptions options, ref CGAffineTransform matrix)
 {
     if (descriptor == null)
     {
         throw ConstructorError.ArgumentNull(this, "descriptor");
     }
     handle = CTFontCreateWithFontDescriptorAndOptions(descriptor.Handle,
                                                       size, ref matrix, options);
     if (handle == IntPtr.Zero)
     {
         throw ConstructorError.Unknown(this);
     }
 }
 public CTFont(string name, float size, ref CGAffineTransform matrix, CTFontOptions options)
 {
     if (name == null)
     {
         throw ConstructorError.ArgumentNull(this, "name");
     }
     using (CFString n = name)
         handle = CTFontCreateWithNameAndOptions(n.Handle, size, ref matrix, options);
     if (handle == IntPtr.Zero)
     {
         throw ConstructorError.Unknown(this);
     }
 }
 static extern IntPtr CTFontCreateWithFontDescriptorAndOptions(IntPtr descriptor, float size, ref CGAffineTransform matrix, CTFontOptions options);
 static extern IntPtr CTFontCreateWithFontDescriptorAndOptions(IntPtr descriptor, float size, IntPtr matrix, CTFontOptions options);
 static extern IntPtr CTFontCreateWithNameAndOptions(IntPtr name, float size, ref CGAffineTransform matrix, CTFontOptions options);
 static extern IntPtr CTFontCreateWithNameAndOptions(IntPtr name, float size, IntPtr matrix, CTFontOptions options);