Struct rusttype::PositionedGlyph
source · pub struct PositionedGlyph<'a> { /* private fields */ }
Expand description
A glyph augmented with positioning and scaling information. You can query such a glyph for information that depends on the scale and position of the glyph.
Implementations§
source§impl<'a> PositionedGlyph<'a>
impl<'a> PositionedGlyph<'a>
sourcepub fn font(&self) -> Option<&Font<'a>>
pub fn font(&self) -> Option<&Font<'a>>
The font to which this glyph belongs. If the glyph is a standalone glyph
that owns its resources, it no longer has a reference to the font which
it was created from (using standalone()
). In which case, None
is
returned.
sourcepub fn unpositioned(&self) -> &ScaledGlyph<'a>
pub fn unpositioned(&self) -> &ScaledGlyph<'a>
A reference to this glyph without positioning
sourcepub fn into_unpositioned(self) -> ScaledGlyph<'a>
pub fn into_unpositioned(self) -> ScaledGlyph<'a>
Removes the positioning from this glyph
sourcepub fn pixel_bounding_box(&self) -> Option<Rect<i32>>
pub fn pixel_bounding_box(&self) -> Option<Rect<i32>>
The conservative pixel-boundary bounding box for this glyph. This is the smallest rectangle aligned to pixel boundaries that encloses the shape of this glyph at this position. Note that the origin of the glyph, at pixel-space coordinates (0, 0), is at the top left of the bounding box.
sourcepub fn shape(&self) -> Option<Vec<Contour>>
pub fn shape(&self) -> Option<Vec<Contour>>
Similar to ScaledGlyph::shape()
, but with the position of the glyph
taken into account.
pub fn scale(&self) -> Scale
pub fn position(&self) -> Point<f32>
sourcepub fn draw<O: FnMut(u32, u32, f32)>(&self, o: O)
pub fn draw<O: FnMut(u32, u32, f32)>(&self, o: O)
Rasterises this glyph. For each pixel in the rect given by
pixel_bounding_box()
, o
is called:
o(x, y, v)
where x
and y
are the coordinates of the pixel relative to the min
coordinates of the bounding box, and v
is the analytically calculated
coverage of the pixel by the shape of the glyph. Calls to o
proceed in
horizontal scanline order, similar to this pseudo-code:
let bb = glyph.pixel_bounding_box();
for y in 0..bb.height() {
for x in 0..bb.width() {
o(x, y, calc_coverage(&glyph, x, y));
}
}
sourcepub fn standalone(&self) -> PositionedGlyph<'static>
pub fn standalone(&self) -> PositionedGlyph<'static>
Constructs a glyph that owns its data from this glyph. This is similar
to Glyph::standalone
. See that function for more details.
sourcepub fn set_position(&mut self, p: Point<f32>)
pub fn set_position(&mut self, p: Point<f32>)
Resets positioning information and recalculates the pixel bounding box
Trait Implementations§
source§impl<'a> Clone for PositionedGlyph<'a>
impl<'a> Clone for PositionedGlyph<'a>
source§fn clone(&self) -> PositionedGlyph<'a>
fn clone(&self) -> PositionedGlyph<'a>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more