protected:
Offset32To<DeltaSetIndexMap> varIdxMap; /* Offset from the beginning of 'avar' table. */
Offset32To<ItemVariationStore> varStore; /* Offset from the beginning of 'avar' table. */
int a_from = a->coords[0].to_int (); int b_from = b->coords[0].to_int (); if (a_from != b_from) return a_from - b_from;
/* this should never be reached. according to the spec, all of the axis *valuemaprecordsforagivenaxismusthavedifferentfromCoordvalues
* */ int a_to = a->coords[1].to_int (); int b_to = b->coords[1].to_int (); return a_to - b_to;
}
public:
F2DOT14 coords[2]; // F2DOT14 fromCoord; /* A normalized coordinate value obtained using // * default normalization. */ // F2DOT14 toCoord; /* The modified, normalized coordinate value. */
public:
DEFINE_SIZE_STATIC (4);
};
struct SegmentMaps : Array16Of<AxisValueMap>
{ int map (int value, unsignedint from_offset = 0, unsignedint to_offset = 1) const
{ #define fromCoord coords[from_offset].to_int () #define toCoord coords[to_offset].to_int () /* The following special-cases are not part of OpenType, which requires *thatatleast-1,0,and+1mustbemapped.Butweincludetheseas
* part of a better error recovery scheme. */ if (len < 2)
{ if (!len) return value; else/* len == 1*/ return value - arrayZ[0].fromCoord + arrayZ[0].toCoord;
}
if (value <= arrayZ[0].fromCoord) return value - arrayZ[0].fromCoord + arrayZ[0].toCoord;
unsignedint i; unsignedint count = len - 1; for (i = 1; i < count && value > arrayZ[i].fromCoord; i++)
;
if (value >= arrayZ[i].fromCoord) return value - arrayZ[i].fromCoord + arrayZ[i].toCoord;
if (unlikely (arrayZ[i-1].fromCoord == arrayZ[i].fromCoord)) return arrayZ[i-1].toCoord;
const hb_map_t& axes_index_map = c->plan->axes_index_map; const SegmentMaps *map = &firstAxisSegmentMaps; unsigned count = axisCount; for (unsignedint i = 0; i < count; i++)
{ if (axes_index_map.has (i))
{
hb_tag_t *axis_tag; if (!c->plan->axes_old_index_tag_map.has (i, &axis_tag))
return_trace (false); if (!map->subset (c, *axis_tag))
return_trace (false);
}
map = &StructAfter<SegmentMaps> (*map);
}
return_trace (true);
}
protected:
FixedVersion<>version; /* Version of the avar table
* initially set to 0x00010000u */
HBUINT16 reserved; /* This field is permanently reserved. Set to 0. */
HBUINT16 axisCount; /* The number of variation axes in the font. This *mustbethesamenumberasaxisCountinthe
* 'fvar' table. */
SegmentMaps firstAxisSegmentMaps;
public:
DEFINE_SIZE_MIN (8);
};
} /* namespace OT */
#endif/* HB_OT_VAR_AVAR_TABLE_HH */
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.22 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.