Skip to main content

SelectedGvar

Enum SelectedGvar 

Source
pub enum SelectedGvar<'a> {
    Original(Gvar<'a>),
    Extended(GvarExtended<'a>),
}
Expand description

Glyph variations from GVAR or the original gvar table.

Variants§

§

Original(Gvar<'a>)

The original gvar table.

§

Extended(GvarExtended<'a>)

The GVAR table (ISO/IEC 14496-22:2026).

Implementations§

Source§

impl SelectedGvar<'_>

Source

pub fn simple_deltas<C, D>( &self, glyph_id: GlyphId, coords: &[F2Dot14], points: &[Point<C>], flags: &mut [PointFlags], contours: &[u16], buffers: &mut DeltaBuffers<'_, D>, ) -> Option<bool>
where C: PointCoord, D: PointCoord + From<C>,

Computes the deltas for the points of a simple glyph at the given location in variation space.

Looks the glyph’s variation data up and hands off to GlyphVariationData::simple_deltas, which documents the arguments.

Returns true if the glyph has variation data, and false if it does not — in which case the deltas are zeroed. Note that they are zeroed whichever it returns, so they never retain values from a previous call.

Source

pub fn simple_deltas_with_scalars<C, D>( &self, glyph_id: GlyphId, coords: &[F2Dot14], scalars: &[Fixed], points: &[Point<C>], flags: &mut [PointFlags], contours: &[u16], buffers: &mut DeltaBuffers<'_, D>, ) -> Option<bool>
where C: PointCoord, D: PointCoord + From<C>,

Computes the deltas for the points of a simple glyph, reusing scalars.

scalars holds one entry per shared tuple, from Gvar::compute_scalars. It may be empty or cover only some of them; the rest are computed here.

Source

pub fn composite_deltas<D: PointCoord>( &self, glyph_id: GlyphId, coords: &[F2Dot14], deltas: &mut [Point<D>], ) -> Option<bool>

Computes the deltas for the component offsets of a composite glyph at the given location in variation space.

Looks the glyph’s variation data up and hands off to GlyphVariationData::composite_deltas.

deltas must have one entry per component plus four for the phantom points.

Returns true if the glyph has variation data, and false if it does not — in which case deltas is zeroed.

Source

pub fn composite_deltas_with_scalars<D: PointCoord>( &self, glyph_id: GlyphId, coords: &[F2Dot14], scalars: &[Fixed], deltas: &mut [Point<D>], ) -> Option<bool>

Computes the deltas for a composite glyph’s component offsets, reusing scalars.

scalars holds one entry per shared tuple, from Gvar::compute_scalars. It may be empty or cover only some of them; the rest are computed here.

Source§

impl<'a> SelectedGvar<'a>

Source

pub fn glyph_count(&self) -> u32

Returns the number of glyphs with variation data.

Source

fn is_extended(&self) -> bool

Source

pub fn version(&self) -> MajorMinor

Returns version from the selected table.

Source

pub fn axis_count(&self) -> u16

Returns axis_count from the selected table.

Source

pub fn shared_tuple_count(&self) -> u16

Returns shared_tuple_count from the selected table.

Source

pub fn shared_tuples_offset(&self) -> Offset32

Returns shared_tuples_offset from the selected table.

Source

pub fn flags(&self) -> GvarFlags

Returns flags from the selected table.

Source

pub fn glyph_variation_data_array_offset(&self) -> u32

Returns glyph_variation_data_array_offset from the selected table.

Source

pub fn glyph_variation_data_offsets(&self) -> ComputedArray<'a, U16Or32>

Returns glyph_variation_data_offsets from the selected table.

Source

pub fn offset_data(&self) -> FontData<'a>

Returns offset_data from the selected table.

Source§

impl<'a> SelectedGvar<'a>

Source

pub fn shared_tuples(&self) -> Result<SharedTuples<'a>, ReadError>

Returns the shared tuples, including an empty array when both the count and offset are zero.

Source

pub fn data_for_gid( &self, gid: GlyphId, ) -> Result<Option<FontData<'a>>, ReadError>

Return the raw data for this gid.

If there is no variation data for the glyph, returns Ok(None).

Source

pub fn glyph_variation_data_for_range( &self, offset_range: Range<usize>, ) -> Result<FontData<'a>, ReadError>

Source

pub fn as_bytes(&self) -> &[u8] ⓘ

Source

fn data_range_for_gid(&self, gid: GlyphId) -> Result<Range<usize>, ReadError>

Source

pub fn glyph_variation_data( &self, gid: GlyphId, ) -> Result<Option<GlyphVariationData<'a>>, ReadError>

Get the variation data for a specific glyph.

Returns Ok(None) if there is no variation data for this glyph, and returns an error if there is data but it is malformed.

Source

pub fn compute_scalars(&self, coords: &[F2Dot14], out: &mut [Fixed]) -> usize

Returns the phantom point deltas for the given variation coordinates and glyph identifier, if variation data exists for the glyph.

The resulting array will contain four deltas: [left, right, top, bottom]. Computes the scalar for each shared tuple at coords, in table order, and returns how many were written.

A tuple that does not apply at coords is written as zero, which is the value it contributes. Only the peak is used: a glyph naming a shared tuple may state its own range alongside it, and that range is not shared.

out may be shorter than the table has shared tuples, and an unreadable table writes nothing. A reader computes whatever is missing.

Source

pub fn phantom_point_deltas( &self, glyf: &Glyf<'_>, loca: &Loca<'_>, coords: &[F2Dot14], glyph_id: GlyphId, ) -> Option<[Point<Fixed>; 4]>

Source

pub fn phantom_point_deltas_with_scalars( &self, glyf: &Glyf<'_>, loca: &Loca<'_>, coords: &[F2Dot14], scalars: &[Fixed], glyph_id: GlyphId, ) -> Option<[Point<Fixed>; 4]>

Returns the phantom point deltas for glyph_id at coords, reusing scalars.

scalars holds one entry per shared tuple, from compute_scalars. It may be empty or cover only some of them; the rest are computed here.

Trait Implementations§

Source§

impl<'a> Clone for SelectedGvar<'a>

Source§

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

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<'a> From<Gvar<'a>> for SelectedGvar<'a>

Source§

fn from(table: Gvar<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<GvarExtended<'a>> for SelectedGvar<'a>

Source§

fn from(table: GvarExtended<'a>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a> Freeze for SelectedGvar<'a>

§

impl<'a> RefUnwindSafe for SelectedGvar<'a>

§

impl<'a> Send for SelectedGvar<'a>

§

impl<'a> Sync for SelectedGvar<'a>

§

impl<'a> Unpin for SelectedGvar<'a>

§

impl<'a> UnsafeUnpin for SelectedGvar<'a>

§

impl<'a> UnwindSafe for SelectedGvar<'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> 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.