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>

source

pub fn id(&self) -> GlyphId

The glyph identifier for this glyph.

source

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.

source

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

A reference to this glyph without positioning

source

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

Removes the positioning from this glyph

source

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.

source

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

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

source

pub fn scale(&self) -> Scale

source

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

source

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));
    }
}
source

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.

source

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>

source§

fn clone(&self) -> PositionedGlyph<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PositionedGlyph<'_>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.