1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
use ffi; use face::Face; #[derive(Copy, Clone)] pub struct TrueTypePostscriptTable { raw: ffi::TT_Postscript_Internal } impl TrueTypePostscriptTable { pub fn from_face(face: &mut Face) -> Option<Self> { unsafe { let post = ffi::FT_Get_Sfnt_Table(face.raw_mut() as *mut ffi::FT_FaceRec, ffi::ft_sfnt_post) as ffi::TT_Postscript_Internal; if !post.is_null() && (*post).formatType != 0 { Some(TrueTypePostscriptTable { raw: post }) } else { None } } } #[inline(always)] pub fn format_type(&self) -> ffi::FT_Fixed { unsafe { (*self.raw).formatType } } #[inline(always)] pub fn italic_angle(&self) -> ffi::FT_Fixed { unsafe { (*self.raw).italicAngle } } #[inline(always)] pub fn underline_position(&self) -> ffi::FT_Short { unsafe { (*self.raw).underlinePosition } } #[inline(always)] pub fn underline_thickness(&self) -> ffi::FT_Short { unsafe { (*self.raw).underlineThickness } } #[inline(always)] pub fn is_fixed_pitch(&self) -> ffi::FT_ULong { unsafe { (*self.raw).isFixedPitch } } #[inline(always)] pub fn min_mem_type_42(&self) -> ffi::FT_ULong { unsafe { (*self.raw).minMemType42 } } #[inline(always)] pub fn max_mem_type_42(&self) -> ffi::FT_ULong { unsafe { (*self.raw).maxMemType42 } } #[inline(always)] pub fn min_mem_type_1(&self) -> ffi::FT_ULong { unsafe { (*self.raw).minMemType1 } } #[inline(always)] pub fn max_mem_type_1(&self) -> ffi::FT_ULong { unsafe { (*self.raw).maxMemType1 } } }