Faceクラス
namespace SharpFont { public sealed class Face : IDisposable { private IntPtr reference; private FaceRec rec; private Library parentLibrary; public Face(Library library, string path, int faceIndex) : this(library) { IntPtr reference; Error err = FT.FT_New_Face(library.Reference, path, faceIndex, out reference); if (err != Error.Ok) throw new FreeTypeException(err); Reference = reference; }Referenceは、プロパティ
internal IntPtr Reference { get { if (disposed) throw new ObjectDisposedException("Reference", "Cannot access a disposed object."); return reference; } set { if (disposed) throw new ObjectDisposedException("Reference", "Cannot access a disposed object."); reference = value; rec = PInvokeHelper.PtrToStructure<FaceRec>(reference); }
FaceRecクラス
namespace SharpFont.Internal
{
[StructLayout(LayoutKind.Sequential)]
internal class FaceRec
{
internal FT_Long num_faces;
internal FT_Long face_index;
internal FT_Long face_flags;
internal FT_Long style_flags;
internal FT_Long num_glyphs;
internal IntPtr family_name;
internal IntPtr style_name;
internal int num_fixed_sizes;
internal IntPtr available_sizes;
internal int num_charmaps;
internal IntPtr charmaps;
internal GenericRec generic;
internal BBox bbox;
internal ushort units_per_EM;
internal short ascender;
internal short descender;
internal short height;
internal short max_advance_width;
internal short max_advance_height;
internal short underline_position;
internal short underline_thickness;
internal IntPtr glyph;
internal IntPtr size;
internal IntPtr charmap;
private IntPtr driver;
private IntPtr memory;
private IntPtr stream;
private IntPtr sizes_list;
private GenericRec autohint;
private IntPtr extensions;
private IntPtr @internal;
internal static int SizeInBytes { get { return Marshal.SizeOf(typeof(FaceRec)); } }
}
}