[][src]Struct rusttype::PositionedGlyph

pub struct PositionedGlyph<'a> { /* fields omitted */ }

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.


impl<'a> PositionedGlyph<'a>[src]

pub fn id(&self) -> GlyphId[src]

The glyph identifier for this glyph.

pub fn font(&self) -> Option<&Font<'a>>[src]

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.

pub fn unpositioned(&self) -> &ScaledGlyph<'a>[src]

A reference to this glyph without positioning

pub fn into_unpositioned(self) -> ScaledGlyph<'a>[src]

Removes the positioning from this glyph

pub fn pixel_bounding_box(&self) -> Option<Rect<i32>>[src]

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.

pub fn shape(&self) -> Option<Vec<Contour>>[src]

Similar to ScaledGlyph::shape(), but with the position of the glyph taken into account.

pub fn scale(&self) -> Scale[src]

pub fn position(&self) -> Point<f32>[src]

pub fn draw<O: FnMut(u32, u32, f32)>(&self, o: O)[src]

Rasterises this glyph. For each pixel in the rect given by pixel_bounding_box(), o is called:

This example is not tested
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:

This example is not tested
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));

pub fn standalone(&self) -> PositionedGlyph<'static>[src]

Constructs a glyph that owns its data from this glyph. This is similar to Glyph::standalone. See that function for more details.

pub fn set_position(&mut self, p: Point<f32>)[src]

Resets positioning information and recalculates the pixel bounding box

Trait Implementations

impl<'a> Clone for PositionedGlyph<'a>[src]

impl<'_> Debug for PositionedGlyph<'_>[src]

Auto Trait Implementations

impl<'a> Send for PositionedGlyph<'a>

impl<'a> Sync for PositionedGlyph<'a>

impl<'a> Unpin for PositionedGlyph<'a>

impl<'a> UnwindSafe for PositionedGlyph<'a>

impl<'a> RefUnwindSafe for PositionedGlyph<'a>

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> Any for T where
    T: 'static + ?Sized