enum
{
OLDER_SIBLING_FONT_ATTRIBUTE = 0x0001, /* If set, this axis value table * provides axis value information * that is applicable to other fonts * within the same font family. This * is used if the other fonts were * released earlier and did not include * information about values for some axis. * If newer versions of the other * fonts include the information * themselves and are present,
* then this record is ignored. */
ELIDABLE_AXIS_VALUE_NAME = 0x0002 /* If set, it indicates that the axis * value represents the “normal” value * for the axis and may be omitted when
* composing name strings. */ // Reserved = 0xFFFC /* Reserved for future use — set to zero. */
};
protected:
Tag tag; /* A tag identifying the axis of design variation. */
NameID nameID; /* The name ID for entries in the 'name' table that
* provide a display string for this axis. */
HBUINT16 ordering; /* A value that applications can use to determine * primary sorting of face names, or for ordering
* of descriptors when composing family or face names. */ public:
DEFINE_SIZE_STATIC (8);
};
protected:
HBUINT16 format; /* Format identifier — set to 1. */
HBUINT16 axisIndex; /* Zero-base index into the axis record array * identifying the axis of design variation * to which the axis value record applies.
* Must be less than designAxisCount. */
HBUINT16 flags; /* Flags — see below for details. */
NameID valueNameID; /* The name ID for entries in the 'name' table * that provide a display string for this
* attribute value. */
F16DOT16 value; /* A numeric value for this attribute value. */ public:
DEFINE_SIZE_STATIC (12);
};
protected:
HBUINT16 format; /* Format identifier — set to 2. */
HBUINT16 axisIndex; /* Zero-base index into the axis record array * identifying the axis of design variation * to which the axis value record applies.
* Must be less than designAxisCount. */
HBUINT16 flags; /* Flags — see below for details. */
NameID valueNameID; /* The name ID for entries in the 'name' table * that provide a display string for this
* attribute value. */
F16DOT16 nominalValue; /* A numeric value for this attribute value. */
F16DOT16 rangeMinValue; /* The minimum value for a range associated
* with the specified name ID. */
F16DOT16 rangeMaxValue; /* The maximum value for a range associated
* with the specified name ID. */ public:
DEFINE_SIZE_STATIC (20);
};
protected:
HBUINT16 format; /* Format identifier — set to 3. */
HBUINT16 axisIndex; /* Zero-base index into the axis record array * identifying the axis of design variation * to which the axis value record applies.
* Must be less than designAxisCount. */
HBUINT16 flags; /* Flags — see below for details. */
NameID valueNameID; /* The name ID for entries in the 'name' table * that provide a display string for this
* attribute value. */
F16DOT16 value; /* A numeric value for this attribute value. */
F16DOT16 linkedValue; /* The numeric value for a style-linked mapping
* from this value. */ public:
DEFINE_SIZE_STATIC (16);
};
protected:
HBUINT16 axisIndex; /* Zero-base index into the axis record array * identifying the axis to which this value
* applies. Must be less than designAxisCount. */
F16DOT16 value; /* A numeric value for this attribute value. */ public:
DEFINE_SIZE_STATIC (6);
};
protected:
HBUINT16 format; /* Format identifier — set to 4. */
HBUINT16 axisCount; /* The total number of axes contributing to
* this axis-values combination. */
HBUINT16 flags; /* Flags — see below for details. */
NameID valueNameID; /* The name ID for entries in the 'name' table * that provide a display string for this
* attribute value. */
UnsizedArrayOf<AxisValueRecord>
axisValues; /* Array of AxisValue records that provide the * combination of axis values, one for each
* contributing axis. */ public:
DEFINE_SIZE_ARRAY (8, axisValues);
};
unsignedint get_axis_index () const
{ switch (u.format)
{ case 1: hb_barrier (); return u.format1.get_axis_index (); case 2: hb_barrier (); return u.format2.get_axis_index (); case 3: hb_barrier (); return u.format3.get_axis_index (); /* case 4: Makes more sense for variable fonts which are handled by fvar in hb-style */ default:return -1;
}
}
hb_ot_name_id_t get_value_name_id () const
{ switch (u.format)
{ case 1: hb_barrier (); return u.format1.get_value_name_id (); case 2: hb_barrier (); return u.format2.get_value_name_id (); case 3: hb_barrier (); return u.format3.get_value_name_id (); case 4: hb_barrier (); return u.format4.get_value_name_id (); default:return HB_OT_NAME_ID_INVALID;
}
}
bool subset (hb_subset_context_t *c) const
{
TRACE_SUBSET (this);
STAT *out = c->serializer->embed (this); if (unlikely (!out)) return_trace (false);
auto designAxes = get_design_axes (); for (unsigned i = 0; i < (unsigned)designAxisCount; i++) if (unlikely (!c->serializer->embed (designAxes[i])))
return_trace (false);
if (designAxisCount)
c->serializer->check_assign (out->designAxesOffset, this->get_size (),
HB_SERIALIZE_ERROR_INT_OVERFLOW);
protected:
FixedVersion<>version; /* Version of the stat table
* initially set to 0x00010002u */
HBUINT16 designAxisSize; /* The size in bytes of each axis record. */
HBUINT16 designAxisCount;/* The number of design axis records. In a * font with an 'fvar' table, this value must be * greater than or equal to the axisCount value * in the 'fvar' table. In all fonts, must * be greater than zero if axisValueCount
* is greater than zero. */
NNOffset32To<UnsizedArrayOf<StatAxisRecord>>
designAxesOffset; /* Offset in bytes from the beginning of * the STAT table to the start of the design * axes array. If designAxisCount is zero, * set to zero; if designAxisCount is greater
* than zero, must be greater than zero. */
HBUINT16 axisValueCount; /* The number of axis value tables. */
NNOffset32To<AxisValueOffsetArray>
offsetToAxisValueOffsets; /* Offset in bytes from the beginning of * the STAT table to the start of the design * axes value offsets array. If axisValueCount * is zero, set to zero; if axisValueCount is
* greater than zero, must be greater than zero. */
NameID elidedFallbackNameID; /* Name ID used as fallback when projection of * names into a particular font model produces * a subfamily name containing only elidable
* elements. */ public:
DEFINE_SIZE_STATIC (20);
};
} /* namespace OT */
#endif/* HB_OT_STAT_TABLE_HH */
Messung V0.5
¤ Dauer der Verarbeitung: 0.35 Sekunden
(vorverarbeitet)
¤
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.