Trait gfx_glyph::GlyphPositioner
pub trait GlyphPositioner: Hash {
// Required methods
fn calculate_glyphs<F, S>(
&self,
fonts: &[F],
geometry: &SectionGeometry,
sections: &[S]
) -> Vec<SectionGlyph, Global>
where F: Font,
S: ToSectionText;
fn bounds_rect(&self, geometry: &SectionGeometry) -> Rect;
// Provided method
fn recalculate_glyphs<F, S, P>(
&self,
previous: P,
change: GlyphChange,
fonts: &[F],
geometry: &SectionGeometry,
sections: &[S]
) -> Vec<SectionGlyph, Global>
where F: Font,
S: ToSectionText,
P: IntoIterator<Item = SectionGlyph> { ... }
}
Expand description
Logic to calculate glyph positioning using Font
,
SectionGeometry
and
SectionText
.
Required Methods§
fn calculate_glyphs<F, S>(
&self,
fonts: &[F],
geometry: &SectionGeometry,
sections: &[S]
) -> Vec<SectionGlyph, Global>where
F: Font,
S: ToSectionText,
fn calculate_glyphs<F, S>( &self, fonts: &[F], geometry: &SectionGeometry, sections: &[S] ) -> Vec<SectionGlyph, Global>where F: Font, S: ToSectionText,
Calculate a sequence of positioned glyphs to render. Custom implementations should return the same result when called with the same arguments to allow layout caching.
fn bounds_rect(&self, geometry: &SectionGeometry) -> Rect
fn bounds_rect(&self, geometry: &SectionGeometry) -> Rect
Return a screen rectangle according to the requested render position and bounds appropriate for the glyph layout.
Provided Methods§
fn recalculate_glyphs<F, S, P>(
&self,
previous: P,
change: GlyphChange,
fonts: &[F],
geometry: &SectionGeometry,
sections: &[S]
) -> Vec<SectionGlyph, Global>where
F: Font,
S: ToSectionText,
P: IntoIterator<Item = SectionGlyph>,
fn recalculate_glyphs<F, S, P>( &self, previous: P, change: GlyphChange, fonts: &[F], geometry: &SectionGeometry, sections: &[S] ) -> Vec<SectionGlyph, Global>where F: Font, S: ToSectionText, P: IntoIterator<Item = SectionGlyph>,
Recalculate a glyph sequence after a change.
The default implementation simply calls calculate_glyphs
so must be implemented
to provide benefits as such benefits are spefic to the internal layout logic.