pub struct Font { /* private fields */ }Expand description
A loaded font, ready for shaping and rasterization.
Constructed from raw TTF/OTF bytes via Font::from_bytes. The data is
reference-counted so fonts can be cheaply shared and saved across frames.
An optional fallback font can be chained via Font::with_fallback; when
a glyph is missing from the primary font (glyph_id == 0 after shaping),
the fallback is consulted for both the glyph outline and advance width.
Implementations§
Source§impl Font
impl Font
Sourcepub fn from_bytes(data: Vec<u8>) -> Result<Self, &'static str>
pub fn from_bytes(data: Vec<u8>) -> Result<Self, &'static str>
Parse a font from raw TTF/OTF bytes.
Returns Err if the data is not a valid font.
Sourcepub fn from_slice(data: &[u8]) -> Result<Self, &'static str>
pub fn from_slice(data: &[u8]) -> Result<Self, &'static str>
Parse a font from a borrowed byte slice (data is copied).
Sourcepub fn with_fallback(self, fallback: Arc<Font>) -> Self
pub fn with_fallback(self, fallback: Arc<Font>) -> Self
Chain a fallback font consulted when this font lacks a glyph.
Returns self so it can be used as a builder method:
let font = Font::from_slice(MAIN_BYTES)?.with_fallback(Arc::new(emoji_font));pub fn units_per_em(&self) -> u16
Sourcepub fn ascender_px(&self, size: f64) -> f64
pub fn ascender_px(&self, size: f64) -> f64
Ascender height in pixels at the given font size.
Sourcepub fn descender_px(&self, size: f64) -> f64
pub fn descender_px(&self, size: f64) -> f64
Descender depth in pixels at the given font size (positive value).
Sourcepub fn line_height_px(&self, size: f64) -> f64
pub fn line_height_px(&self, size: f64) -> f64
Recommended line height in pixels at the given font size.
Auto Trait Implementations§
impl Freeze for Font
impl RefUnwindSafe for Font
impl Send for Font
impl Sync for Font
impl Unpin for Font
impl UnsafeUnpin for Font
impl UnwindSafe for Font
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more