Skip to main content

MultipleMaster

Struct MultipleMaster 

Source
pub struct MultipleMaster {
    axes: Vec<MasterAxis>,
    num_masters: usize,
    default_weights: Vec<Fixed>,
}
Expand description

The design space of a multiple master font.

A multiple master font holds two to sixteen masters at the corners of a blend space with one to four axes. An instance is a weighted blend of the masters, and its weights come from a position in that space, given as blend coordinates from 0 to 1 on each axis or as design coordinates, which each axis maps to blend coordinates.

The conversions follow FreeType’s, including where its arithmetic departs from the specification, so that an instance draws as it does in FreeType.

Fields§

§axes: Vec<MasterAxis>§num_masters: usize§default_weights: Vec<Fixed>

Implementations§

Source§

impl MultipleMaster

Source

pub fn axes(&self) -> &[MasterAxis]

Returns the axes.

Source

pub fn num_masters(&self) -> usize

Returns the number of masters, which is two to the power of the number of axes.

Source

pub fn default_weights(&self) -> &[Fixed]

Returns the weights of the font’s default instance, one per master.

Source

pub fn default_blend(&self, blend: &mut [Fixed])

Writes the blend coordinates of the font’s default instance to blend, one per axis.

https://gitlab.freedesktop.org/freetype/freetype/-/blob/80a507a6b8e3d2906ad2c8ba69329bd2fb2a85ef/src/type1/t1load.c#L248

Source

pub fn weights_to_blend(&self, weights: &[Fixed], blend: &mut [Fixed])

Writes the blend coordinates that give rise to weights to blend, one per axis.

The blend on an axis is the sum of the weights of the masters at its far end.

Source

pub fn blend_to_weights(&self, blend: &[Fixed], weights: &mut [Fixed])

Writes the weights for the blend coordinates blend to weights, one per master.

An axis without a coordinate takes the middle of its range.

https://gitlab.freedesktop.org/freetype/freetype/-/blob/80a507a6b8e3d2906ad2c8ba69329bd2fb2a85ef/src/type1/t1load.c#L383

Source

pub fn design_to_blend(&self, design: &[Fixed], blend: &mut [Fixed])

Writes the blend coordinates for the design coordinates design to blend, one per axis.

Each design coordinate is rounded to a whole number first. An axis without a coordinate takes half its range above zero, (max - min) / 2, which is the middle only of a range that starts at zero. Both follow FreeType’s T1_Set_Var_Design, as does MasterAxis::design_to_blend.

https://gitlab.freedesktop.org/freetype/freetype/-/blob/80a507a6b8e3d2906ad2c8ba69329bd2fb2a85ef/src/type1/t1load.c#L653

Trait Implementations§

Source§

impl Clone for MultipleMaster

Source§

fn clone(&self) -> MultipleMaster

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 Debug for MultipleMaster

Source§

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

Formats the value using the given formatter. Read more

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<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<T> ErasedDestructor for T
where T: 'static,

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,

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.