pub struct FontArc(Arc<dyn Font + Send + Sync + 'static>);
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));
Tuple Fields§
§0: Arc<dyn Font + Send + Sync + 'static>
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. See glyph layout concepts. Read more
source§fn descent_unscaled(&self) -> f32
fn descent_unscaled(&self) -> f32
Unscaled glyph descent. See glyph layout concepts. Read more
source§fn line_gap_unscaled(&self) -> f32
fn line_gap_unscaled(&self) -> f32
Unscaled line gap. See glyph layout concepts. 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.
See glyph layout concepts. 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.
See glyph layout concepts. 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 glyph_svg_image(&self, id: GlyphId) -> Option<GlyphSvg<'_>>
fn glyph_svg_image(&self, id: GlyphId) -> Option<GlyphSvg<'_>>
Returns raw SVG data of a range of glyphs which includes this one. Read more
source§fn font_data(&self) -> &[u8] ⓘ
fn font_data(&self) -> &[u8] ⓘ
Extracts a slice containing the data passed into e.g.
FontArc::try_from_slice
. Read moresource§fn height_unscaled(&self) -> f32
fn height_unscaled(&self) -> f32
source§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. Read more
source§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 Freeze for FontArc
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)