read_fonts::tables::fvar

Type Alias Fvar

Source
pub type Fvar<'a> = TableRef<'a, FvarMarker>;
Expand description

Aliased Type§

struct Fvar<'a> { /* private fields */ }

Implementations§

Source§

impl<'a> Fvar<'a>

Source

pub fn version(&self) -> MajorMinor

Major version number of the font variations table — set to 1. Minor version number of the font variations table — set to 0.

Source

pub fn axis_instance_arrays_offset(&self) -> Offset16

Offset in bytes from the beginning of the table to the start of the VariationAxisRecord array. The InstanceRecord array directly follows.

Source

pub fn axis_instance_arrays(&self) -> Result<AxisInstanceArrays<'a>, ReadError>

Attempt to resolve axis_instance_arrays_offset.

Source

pub fn axis_count(&self) -> u16

The number of variation axes in the font (the number of records in the axes array).

Source

pub fn axis_size(&self) -> u16

The size in bytes of each VariationAxisRecord — set to 20 (0x0014) for this version.

Source

pub fn instance_count(&self) -> u16

The number of named instances defined in the font (the number of records in the instances array).

Source

pub fn instance_size(&self) -> u16

The size in bytes of each InstanceRecord — set to either axisCount * sizeof(Fixed) + 4, or to axisCount * sizeof(Fixed) + 6.

Source§

impl<'a> Fvar<'a>

Source

pub fn axes(&self) -> Result<&'a [VariationAxisRecord], ReadError>

Returns the array of variation axis records.

Source

pub fn instances( &self, ) -> Result<ComputedArray<'a, InstanceRecord<'a>>, ReadError>

Returns the array of instance records.

Source

pub fn user_to_normalized( &self, avar: Option<&Avar<'_>>, user_coords: impl IntoIterator<Item = (Tag, Fixed)>, normalized_coords: &mut [F2Dot14], )

Converts user space coordinates provided by an unordered iterator of (tag, value) pairs to normalized coordinates in axis list order.

Stores the resulting normalized coordinates in the given slice.

  • User coordinate tags that don’t match an axis are ignored.
  • User coordinate values are clamped to the range of their associated axis before normalization.
  • If more than one user coordinate is provided for the same tag, the last one is used.
  • If no user coordinate for an axis is provided, the associated coordinate is set to the normalized value 0.0, representing the default location in variation space.
  • The length of normalized_coords should equal the number of axes present in the this table. If the length is smaller, axes at out of bounds indices are ignored. If the length is larger, the excess entries will be filled with zeros.

If the Avar table is provided, applies remapping of coordinates according to the specification.

Trait Implementations§

Source§

impl<'a> FontRead<'a> for Fvar<'a>

Source§

fn read(data: FontData<'a>) -> Result<Self, ReadError>

Read an instance of Self from the provided data, performing validation. Read more
Source§

impl TopLevelTable for Fvar<'_>

Source§

const TAG: Tag = _

fvar