unsigned int code;
/***en Glyph indices indicating the range of original glyphs. */
int from, to;
- /***en Ink metrics of the glyph expressed in 26.6 fractional pixel
- format. */
- int ascent, descent, lbearing, rbearing;
/***en Advance width for horizontal layout and advance height for
vertical layout expressed in 26.6 fractional pixel format. */
int xadv, yadv;
+ /***en Ink metrics of the glyph expressed in 26.6 fractional pixel
+ format. */
+ int ascent, descent, lbearing, rbearing;
/***en Horizontal and vertical adjustments for the glyph positioning
expressed in 26.6 fractional pixel format. */
int xoff, yoff;
+ /***en Flag to tell if the member <code> is encoded into a glyph ID
+ of a font. */
+ int encoded : 1;
+ /***en Flag to tell if the metrics of the glyph (members <xadv> thru
+ <rbearing>) are already calculated. */
+ int measured : 1;
/***en For m17n-lib's internal use only. */
- unsigned int internal;
+ unsigned int internal : 30;
};
/***en
int xoff, yoff;
/***en Number of glyphs to go back for drawing a glyph. */
short back;
- /***en If nonzero, the member #xadv and #yadv are absolute, i.e.,
+ /***en If nonzero, the member <xadv> and <yadv> are absolute, i.e.,
they should not be added to a glyph's origianl advance width and
height. */
unsigned advance_is_absolute : 1;
int allocated;
/***en How many elements in #glyphs are in use. */
int used;
- /***en OTF Script tag. Zero means */
+ /***en OTF script tag. Zero means */
unsigned int script;
- /***en OTF Langsys tag. */
- unsigned int langsys;
+ /***en OTF language system tag. */
+ unsigned int language;
};
/***en
struct _MFLTFont
{
int x_ppem, y_ppem;
- int (*get_glyph_id) (MFLTFont *font, MFLTGlyph *g);
+ int (*get_glyph_id) (MFLTFont *font, MFLTGlyphString *gstring,
+ int form, int to);
int (*get_metric) (MFLTFont *font, MFLTGlyphString *gstring, int form, int to);
int (*suitable_p) (MFLTFont *font, MSymbol family, MFLTOtfSpec *spec);
int (*drive_otf) (MFLTFont *font, MFLTOtfSpec *spec,