pub trait GlyphCruncher<F = FontArc, X = Extra>where
    F: Font,
    X: Clone,{
    // Required methods
    fn glyphs_custom_layout<'a, S, L, 'b>(
        &'b mut self,
        section: S,
        custom_layout: &L
    ) -> Iter<'b, SectionGlyph>
       where X: 'a,
             L: GlyphPositioner + Hash,
             S: Into<Cow<'a, Section<'a, X>>>;
    fn fonts(&self) -> &[F] ;
    fn glyph_bounds_custom_layout<'a, S, L>(
        &mut self,
        section: S,
        custom_layout: &L
    ) -> Option<Rect>
       where X: 'a,
             L: GlyphPositioner + Hash,
             S: Into<Cow<'a, Section<'a, X>>>;

    // Provided methods
    fn glyphs<'a, S, 'b>(&'b mut self, section: S) -> Iter<'b, SectionGlyph>
       where X: 'a,
             S: Into<Cow<'a, Section<'a, X>>> { ... }
    fn glyph_bounds<'a, S>(&mut self, section: S) -> Option<Rect>
       where X: 'a,
             S: Into<Cow<'a, Section<'a, X>>> { ... }
}
Expand description

Common glyph layout logic.

Example

use glyph_brush::GlyphCruncher;

let default_font = glyph_brush.fonts()[0];

Required Methods§

source

fn glyphs_custom_layout<'a, S, L, 'b>( &'b mut self, section: S, custom_layout: &L ) -> Iter<'b, SectionGlyph>where X: 'a, L: GlyphPositioner + Hash, S: Into<Cow<'a, Section<'a, X>>>,

Returns an iterator over the PositionedGlyphs of the given section with a custom layout.

Generally only drawable glyphs will be returned as invisible glyphs, like spaces, are discarded during layout.

Benefits from caching, see caching behaviour.

source

fn fonts(&self) -> &[F]

Returns the available fonts.

The FontId corresponds to the index of the font data.

source

fn glyph_bounds_custom_layout<'a, S, L>( &mut self, section: S, custom_layout: &L ) -> Option<Rect>where X: 'a, L: GlyphPositioner + Hash, S: Into<Cow<'a, Section<'a, X>>>,

Returns a bounding box for the section glyphs calculated using each glyph’s vertical & horizontal metrics.

If the section is empty or would result in no drawn glyphs will return None.

Invisible glyphs, like spaces, are discarded during layout so trailing ones will not affect the bounds.

The bounds will always lay within the specified layout bounds, ie that returned by the layout’s bounds_rect function.

Benefits from caching, see caching behaviour.

Provided Methods§

source

fn glyphs<'a, S, 'b>(&'b mut self, section: S) -> Iter<'b, SectionGlyph>where X: 'a, S: Into<Cow<'a, Section<'a, X>>>,

Returns an iterator over the PositionedGlyphs of the given section.

Generally only drawable glyphs will be returned as invisible glyphs, like spaces, are discarded during layout.

Benefits from caching, see caching behaviour.

source

fn glyph_bounds<'a, S>(&mut self, section: S) -> Option<Rect>where X: 'a, S: Into<Cow<'a, Section<'a, X>>>,

Returns a bounding box for the section glyphs calculated using each glyph’s vertical & horizontal metrics.

If the section is empty or would result in no drawn glyphs will return None.

Invisible glyphs, like spaces, are discarded during layout so trailing ones will not affect the bounds.

The bounds will always lay within the specified layout bounds, ie that returned by the layout’s bounds_rect function.

Benefits from caching, see caching behaviour.

Implementors§

source§

impl<F, V, X, H> GlyphCruncher<F, X> for glyph_brush::glyph_brush::GlyphBrush<V, X, F, H>where X: Clone + Hash, F: Font, V: Clone + 'static, H: BuildHasher,

source§

impl<F, X, H> GlyphCruncher<F, X> for GlyphCalculatorGuard<'_, F, X, H>where F: Font, X: Clone + Hash, H: BuildHasher,

source§

impl<R, GF, F, H> GlyphCruncher<F, Extra> for gfx_glyph::GlyphBrush<R, GF, F, H>where F: Font, R: Resources, GF: Factory<R>, H: BuildHasher,