int allocated;
/***en How many elements in #glyphs are in use. */
int used;
- /***en A field reserved for client uses. */
- void *user_data;
+ /***en Script tag. */
+ unsigned int script;
+ /***en Langsys tag. */
+ unsigned int langsys;
};
/***en
struct _MFLTOtfSpec
{
- /***en Symbol representing the spec. This is the same as the
+ /***en Unique symbol representing the spec. This is the same as the
#OTF-SPEC of the FLT. */
MSymbol sym;
- /***en Tags for script and langsys. */
+ /***en Tags for script and langsys. */
unsigned int script, langsys;
/***en Number of GSUB features stored in the member #gsub. */
int gsub_count;
int x_ppem, y_ppem;
int (*get_glyph_id) (MFLTFont *font, MFLTGlyph *g);
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,
MFLTGlyphString *in, int from, int to,
MFLTGlyphString *out, MFLTGlyphAdjustment *adjustment);
/* Arbitrary data can follow. */
};
+typedef struct _MFLT MFLT;
+
+extern MFLT *mflt_find (MFLTGlyphString *gstring, int pos, MFLTFont *font,
+ int *start);
+
extern int mflt_run (MFLTGlyphString *gstring, int from, int to,
MFLTFont *font, MSymbol layouter_name);