pub struct FontArc(/* private fields */);
Expand description
Font
implementor that wraps another concrete Font + 'static
type storing in an Arc
.
Provides convenient type erasure & cheap clones (particularly for FontVec
).
Example
use ab_glyph::{Font, FontArc};
let font = FontArc::try_from_slice(include_bytes!("../../dev/fonts/Exo2-Light.otf"))?;
assert_eq!(font.glyph_id('s'), ab_glyph::GlyphId(56));
Implementations§
source§impl FontArc
impl FontArc
sourcepub fn new<F: Font + Send + Sync + 'static>(font: F) -> Self
pub fn new<F: Font + Send + Sync + 'static>(font: F) -> Self
Example
let font_arc = FontArc::new(font_vec);
sourcepub fn try_from_vec(data: Vec<u8>) -> Result<Self, InvalidFont>
pub fn try_from_vec(data: Vec<u8>) -> Result<Self, InvalidFont>
sourcepub fn try_from_slice(data: &'static [u8]) -> Result<Self, InvalidFont>
pub fn try_from_slice(data: &'static [u8]) -> Result<Self, InvalidFont>
Creates an FontArc
from a byte-slice.
Example
let font = FontArc::try_from_slice(include_bytes!("../../dev/fonts/Exo2-Light.otf"))?;
Trait Implementations§
source§impl Font for FontArc
impl Font for FontArc
source§fn ascent_unscaled(&self) -> f32
fn ascent_unscaled(&self) -> f32
Unscaled glyph ascent. Read more
source§fn descent_unscaled(&self) -> f32
fn descent_unscaled(&self) -> f32
Unscaled glyph descent. Read more
source§fn line_gap_unscaled(&self) -> f32
fn line_gap_unscaled(&self) -> f32
Unscaled line gap. Read more
source§fn h_advance_unscaled(&self, id: GlyphId) -> f32
fn h_advance_unscaled(&self, id: GlyphId) -> f32
Unscaled horizontal advance for a given glyph id. Read more
source§fn h_side_bearing_unscaled(&self, id: GlyphId) -> f32
fn h_side_bearing_unscaled(&self, id: GlyphId) -> f32
Unscaled horizontal side bearing for a given glyph id. Read more
source§fn v_advance_unscaled(&self, id: GlyphId) -> f32
fn v_advance_unscaled(&self, id: GlyphId) -> f32
Unscaled vertical advance for a given glyph id. Read more
source§fn v_side_bearing_unscaled(&self, id: GlyphId) -> f32
fn v_side_bearing_unscaled(&self, id: GlyphId) -> f32
Unscaled vertical side bearing for a given glyph id. Read more
source§fn kern_unscaled(&self, first: GlyphId, second: GlyphId) -> f32
fn kern_unscaled(&self, first: GlyphId, second: GlyphId) -> f32
Returns additional unscaled kerning to apply for a particular pair of glyph ids. Read more
source§fn outline(&self, glyph: GlyphId) -> Option<Outline>
fn outline(&self, glyph: GlyphId) -> Option<Outline>
Compute unscaled glyph outline curves & bounding box.
source§fn glyph_count(&self) -> usize
fn glyph_count(&self) -> usize
The number of glyphs present in this font. Glyph identifiers for this
font will always be in the range
0..self.glyph_count()
source§fn codepoint_ids(&self) -> CodepointIdIter<'_> ⓘ
fn codepoint_ids(&self) -> CodepointIdIter<'_> ⓘ
Returns an iterator of all distinct
(GlyphId, char)
pairs. Not ordered. Read moresource§fn glyph_raster_image2(&self, id: GlyphId, size: u16) -> Option<GlyphImage<'_>>
fn glyph_raster_image2(&self, id: GlyphId, size: u16) -> Option<GlyphImage<'_>>
Returns a pre-rendered image of the glyph. Read more
source§fn height_unscaled(&self) -> f32
fn height_unscaled(&self) -> f32
Unscaled height
ascent - descent
. Read moresource§fn glyph_raster_image(
&self,
id: GlyphId,
pixel_size: u16
) -> Option<GlyphImage<'_>>
fn glyph_raster_image( &self, id: GlyphId, pixel_size: u16 ) -> Option<GlyphImage<'_>>
👎Deprecated since 0.2.22: Deprecated in favor of
glyph_raster_image2
Returns a pre-rendered image of the glyph. Read more
source§fn glyph_bounds(&self, glyph: &Glyph) -> Rectwhere
Self: Sized,
fn glyph_bounds(&self, glyph: &Glyph) -> Rectwhere
Self: Sized,
Returns the layout bounds of this glyph. These are different to the outline
px_bounds()
. Read moresource§fn outline_glyph(&self, glyph: Glyph) -> Option<OutlinedGlyph>where
Self: Sized,
fn outline_glyph(&self, glyph: Glyph) -> Option<OutlinedGlyph>where
Self: Sized,
Compute glyph outline ready for drawing.
source§fn into_scaled<S: Into<PxScale>>(self, scale: S) -> PxScaleFont<Self>where
Self: Sized,
fn into_scaled<S: Into<PxScale>>(self, scale: S) -> PxScaleFont<Self>where
Self: Sized,
Move into a
PxScaleFont
associated with the
given pixel scale
.Auto Trait Implementations§
impl !RefUnwindSafe for FontArc
impl Send for FontArc
impl Sync for FontArc
impl Unpin for FontArc
impl !UnwindSafe for FontArc
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
Mutably borrows from an owned value. Read more