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<'_>
impl GvarExtended<'_>
Sourcepub 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>
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>
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.
Sourcepub 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>
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>
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.
Sourcepub fn composite_deltas<D: PointCoord>(
&self,
glyph_id: GlyphId,
coords: &[F2Dot14],
deltas: &mut [Point<D>],
) -> Option<bool>
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.
Sourcepub fn composite_deltas_with_scalars<D: PointCoord>(
&self,
glyph_id: GlyphId,
coords: &[F2Dot14],
scalars: &[Fixed],
deltas: &mut [Point<D>],
) -> Option<bool>
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>
impl<'a> GvarExtended<'a>
pub const MIN_SIZE: usize
Sourcepub fn resolve_offset<O: Offset, R: FontRead<'a, Args = ()>>(
&self,
offset: O,
) -> Result<R, ReadError>
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.
Sourcepub fn offset_data(&self) -> FontData<'a>
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.
Sourcepub fn shape(&self) -> &Self
👎Deprecated: just use the base type directly
pub fn shape(&self) -> &Self
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.
pub fn version(&self) -> MajorMinor
pub fn axis_count(&self) -> u16
Sourcepub fn glyph_count(&self) -> Uint24
pub fn glyph_count(&self) -> Uint24
Number of glyphs, equal to numGlyphs in MAXP.
pub fn flags(&self) -> GvarFlags
pub fn glyph_variation_data_array_offset(&self) -> u32
pub fn glyph_variation_data_offsets(&self) -> ComputedArray<'a, U16Or32>
pub fn version_byte_range(&self) -> Range<usize> ⓘ
pub fn axis_count_byte_range(&self) -> Range<usize> ⓘ
pub fn glyph_count_byte_range(&self) -> Range<usize> ⓘ
pub fn flags_byte_range(&self) -> Range<usize> ⓘ
pub fn glyph_variation_data_array_offset_byte_range(&self) -> Range<usize> ⓘ
pub fn glyph_variation_data_offsets_byte_range(&self) -> Range<usize> ⓘ
Source§impl<'a> GvarExtended<'a>
impl<'a> GvarExtended<'a>
Offset from the start of this table to the shared tuple records.
fn is_extended(&self) -> bool
Source§impl<'a> GvarExtended<'a>
impl<'a> GvarExtended<'a>
Returns the shared tuples, including an empty array when both the count and offset are zero.
Sourcepub fn data_for_gid(
&self,
gid: GlyphId,
) -> Result<Option<FontData<'a>>, ReadError>
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).
pub fn glyph_variation_data_for_range( &self, offset_range: Range<usize>, ) -> Result<FontData<'a>, ReadError>
pub fn as_bytes(&self) -> &[u8] ⓘ
fn data_range_for_gid(&self, gid: GlyphId) -> Result<Range<usize>, ReadError>
Sourcepub fn glyph_variation_data(
&self,
gid: GlyphId,
) -> Result<Option<GlyphVariationData<'a>>, ReadError>
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.
Sourcepub fn compute_scalars(&self, coords: &[F2Dot14], out: &mut [Fixed]) -> usize
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.
pub fn phantom_point_deltas( &self, glyf: &Glyf<'_>, loca: &Loca<'_>, coords: &[F2Dot14], glyph_id: GlyphId, ) -> Option<[Point<Fixed>; 4]>
Sourcepub fn phantom_point_deltas_with_scalars(
&self,
glyf: &Glyf<'_>,
loca: &Loca<'_>,
coords: &[F2Dot14],
scalars: &[Fixed],
glyph_id: GlyphId,
) -> Option<[Point<Fixed>; 4]>
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>
impl<'a> Clone for GvarExtended<'a>
Source§fn clone(&self) -> GvarExtended<'a>
fn clone(&self) -> GvarExtended<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more