Skip to main content

SmoothHinting

Struct SmoothHinting 

Source
pub struct SmoothHinting {
    pub light: bool,
    pub symmetric_rendering: bool,
    pub preserve_linear_metrics: bool,
}
Expand description

Tuning for HintingTarget::Smooth, mirroring skrifa’s Target::Smooth.

Fields§

§light: bool

Hint only lightly: snap stems vertically but leave horizontal shapes alone (FreeType’s “light” mode). Preserves the font’s proportions better, at the cost of a little horizontal sharpness.

false uses the “normal” mode, which also fits horizontally. Maps to SmoothMode::Light (true) vs SmoothMode::Normal (false).

§symmetric_rendering: bool

Render a glyph the same way regardless of its sub-pixel position.

true makes glyphs position-independent (better for caching and animation), but a font’s instructions may then widen stems and look slightly blurrier under an analytic rasterizer like egui’s.

Only affects fonts hinted via the TrueType interpreter (i.e. fonts that ship their own instructions). It has no effect on the auto-hinter. Mirrors Target::Smooth { symmetric_rendering }.

§preserve_linear_metrics: bool

Keep advance widths independent of hinting (don’t grid-fit horizontally in a way that changes spacing).

true keeps inter-glyph spacing identical to the unhinted font, so layout never depends on hinting — but it also prevents horizontal grid-fitting, leaving vertical stems softer on low-dpi screens.

false lets the (auto)hinter snap horizontally for crisper stems. egui positions glyphs from the shaper’s advances, not the hinted outline, so this mainly affects sharpness here, not layout. Mirrors Target::Smooth { preserve_linear_metrics }.

Trait Implementations§

Source§

impl Clone for SmoothHinting

Source§

fn clone(&self) -> SmoothHinting

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for SmoothHinting

Source§

impl Debug for SmoothHinting

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for SmoothHinting

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for SmoothHinting

Source§

impl PartialEq for SmoothHinting

Source§

fn eq(&self, other: &SmoothHinting) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for SmoothHinting

Auto Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

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

Source§

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>,

Source§

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>,

Source§

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.