pub struct PositionedGlyph {
pub gid: u16,
pub font_data: Arc<[u8]>,
pub pos: (f32, f32),
pub font_size: f32,
pub advance_x: f32,
pub cluster: u32,
}Expand description
A glyph positioned on the layout canvas.
Fields§
§gid: u16Glyph ID.
font_data: Arc<[u8]>Font data associated with this glyph.
pos: (f32, f32)Position (x, y) in pixels from the top-left origin.
font_size: f32Font size in pixels-per-em used to shape and rasterise this glyph.
Carried per-glyph so that a single line may mix multiple sizes (e.g. superscripts, mixed-style runs) and the rasteriser knows the size for each glyph without re-deriving it from a shared style.
advance_x: f32Horizontal advance in pixels (same unit as pos).
Needed for hit-testing (cursor placement) and for determining a glyph’s
x-extent without referencing the original ShapedRun again.
cluster: u32UTF-8 byte offset of this glyph’s cluster in the source text.
Mirrors ShapedGlyph::cluster. Carried here so that hit-testing,
hanging-punctuation checks, and other post-layout passes can identify
the source codepoint without walking the original ShapedRun list.
Trait Implementations§
Source§impl Clone for PositionedGlyph
impl Clone for PositionedGlyph
Source§fn clone(&self) -> PositionedGlyph
fn clone(&self) -> PositionedGlyph
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for PositionedGlyph
impl RefUnwindSafe for PositionedGlyph
impl Send for PositionedGlyph
impl Sync for PositionedGlyph
impl Unpin for PositionedGlyph
impl UnsafeUnpin for PositionedGlyph
impl UnwindSafe for PositionedGlyph
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more