Skip to main content

GvarExtended

Struct GvarExtended 

Source
pub struct GvarExtended<'a> {
    data: TableDataRef<'a, GvarExtendedFixedHeader>,
}
Expand description

GVAR glyph variations table (ISO/IEC 14496-22:2026, 7.3.9).

Fields§

§data: TableDataRef<'a, GvarExtendedFixedHeader>

Implementations§

Source§

impl GvarExtended<'_>

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> GvarExtended<'a>

Source

pub const MIN_SIZE: usize

Source

pub fn resolve_offset<O: Offset, R: FontRead<'a, Args = ()>>( &self, offset: O, ) -> Result<R, ReadError>

Resolve the provided offset from the start of this table.

Source

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

Return a reference to this table’s raw data.

We use this in the compile crate to resolve offsets.

Source

pub fn shape(&self) -> &Self

👎Deprecated:

just use the base type directly

Return a reference to the table’s ‘Shape’ struct.

This is a low level implementation detail, but it can be useful in some cases where you want to know things about a table’s layout, such as the byte offsets of specific fields.

Source

pub fn version(&self) -> MajorMinor

Source

pub fn axis_count(&self) -> u16

Source

pub fn shared_tuple_count(&self) -> u16

Source

pub fn glyph_count(&self) -> Uint24

Number of glyphs, equal to numGlyphs in MAXP.

Source

pub fn flags(&self) -> GvarFlags

Source

pub fn glyph_variation_data_array_offset(&self) -> u32

Source

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

Source

pub fn version_byte_range(&self) -> Range<usize> ⓘ

Source

pub fn axis_count_byte_range(&self) -> Range<usize> ⓘ

Source

pub fn shared_tuple_count_byte_range(&self) -> Range<usize> ⓘ

Source

pub fn shared_tuples_offset_byte_range(&self) -> Range<usize> ⓘ

Source

pub fn glyph_count_byte_range(&self) -> Range<usize> ⓘ

Source

pub fn flags_byte_range(&self) -> Range<usize> ⓘ

Source

pub fn glyph_variation_data_array_offset_byte_range(&self) -> Range<usize> ⓘ

Source

pub fn glyph_variation_data_offsets_byte_range(&self) -> Range<usize> ⓘ

Source§

impl<'a> GvarExtended<'a>

Source

pub fn shared_tuples_offset(&self) -> Offset32

Offset from the start of this table to the shared tuple records.

Source

fn is_extended(&self) -> bool

Source§

impl<'a> GvarExtended<'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 GvarExtended<'a>

Source§

fn clone(&self) -> GvarExtended<'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 Default for GvarExtended<'_>

Source§

fn default() -> Self

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

impl<'a> FontRead<'a> for GvarExtended<'a>

Source§

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

Read an item, performing validation. Read more
Source§

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

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

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

Source§

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

Converts to this type from the input type.
Source§

impl<'a> MinByteRange<'a> for GvarExtended<'a>

Source§

impl ReadArgs for GvarExtended<'_>

Source§

impl TopLevelTable for GvarExtended<'_>

Source§

const TAG: Tag

GVAR

Auto Trait Implementations§

§

impl<'a> Freeze for GvarExtended<'a>

§

impl<'a> RefUnwindSafe for GvarExtended<'a>

§

impl<'a> Send for GvarExtended<'a>

§

impl<'a> Sync for GvarExtended<'a>

§

impl<'a> Unpin for GvarExtended<'a>

§

impl<'a> UnsafeUnpin for GvarExtended<'a>

§

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