# FLT API

API provided by libm17n-flt.so. More...

## Data Structures
struct | MFLTGlyph
| Type of information about a glyph. More...
struct | MFLTGlyphAdjustment
| Type of information about a glyph position adjustment. More...
struct | MFLTGlyphString
| Type of information about a glyph sequence. More...
struct | MFLTOtfSpec
| Type of specification of GSUB and GPOS OpenType tables. More...
struct | MFLTFont
| Type of font to be used by the FLT driver. More...
## Typedefs
typedef struct _MFLT | MFLT
| Type of FLT (Font Layout Table).
## Functions
MFLT * | mflt_get (MSymbol name)
| Return an FLT object that has a specified name.
MFLT * | mflt_find (int c, MFLTFont *font)
| Find an FLT suitable for the specified character and font.
const char * | mflt_name (MFLT *flt)
| Return the name of an FLT.
MCharTable * | mflt_coverage (MFLT *flt)
| Return a coverage of a FLT.
int | mflt_run (MFLTGlyphString *gstring, int from, int to, MFLTFont *font, MFLT *flt)
| Layout characters with an FLT.
MFLT * | mdebug_dump_flt (MFLT *flt, int indent)
| Dump a Font Layout Table.
## Variables
MSymbol(* | mflt_font_id )(struct _MFLTFont *font)
int(* | mflt_iterate_otf_feature )(struct _MFLTFont *font, MFLTOtfSpec *spec, int from, int to, unsigned char *table)
int(* | mflt_iterate_otf_feature )(struct _MFLTFont *font, MFLTOtfSpec *spec, int from, int to, unsigned char *table)
MSymbol(* | mflt_font_id )(struct _MFLTFont *font)

## Detailed Description

API provided by libm17n-flt.so.

FLT support for a window system.

This section defines the m17n FLT API concerning character layouting facility using FLT (Font Layout Table). The format of FLT is described in Font Layout Table.

## Typedef Documentation

typedef struct _MFLT MFLT

Type of FLT (Font Layout Table).

The type MFLT is for an FLT object. Its internal structure is concealed from application programs.

## Function Documentation

MFLT * mflt_get | ( | MSymbol | name | ) |

Return an FLT object that has a specified name.

The mflt_get() function returns an FLT object whose name is name.

Return value:
  If the operation was successful, mflt_get() returns a pointer to the found FLT object. Otherwise, it returns `NULL`.

MFLT * mflt_find | ( | int | c,
|  | MFLTFont * | font |
| ) |  |  |

Find an FLT suitable for the specified character and font.

The mflt_find() function returns the most appropriate FLT for layouting character c with font font.

Return value:
  If the operation was successful, mflt_find() returns a pointer to the found FLT object. Otherwise, it returns `NULL`.

const char * mflt_name | ( | MFLT * | flt | ) |

Return the name of an FLT.

The mflt_name() function returns the name of flt.

MCharTable * mflt_coverage | ( | MFLT * | flt | ) |

Return a coverage of a FLT.

The mflt_coverage() function returns a char-table that contains nonzero values for characters supported by flt.

int mflt_run | ( | MFLTGlyphString * | gstring,
|  | int | from,
|  | int | to,
|  | MFLTFont * | font,
|  | MFLT * | flt |
| ) |  |  |

Layout characters with an FLT.

The mflt_run() function layouts characters in gstring between from (inclusive) and to (exclusive) with font. If flt is nonzero, it is used for all the charaters. Otherwise, appropriate FLTs are automatically chosen.

Return values:

  | >=0 | The operation was successful. The value is the index to the glyph, which was previously indexed by to, in gstring->glyphs.
  | -2 | gstring->glyphs is too short to store the result. The caller can call this fucntion again with a longer gstring->glyphs.
  | -1 | Some other error occurred.

MFLT* mdebug_dump_flt | ( | MFLT * | flt,
|  | int | indent |
| ) |  |  |

Dump a Font Layout Table.

The mdebug_dump_flt() function prints the Font Layout Table flt in a human readable way to the stderr. indent specifies how many columns to indent the lines but the first one.

Return value:
  This function returns flt.

## Variable Documentation

MSymbol(* mflt_font_id)(struct _MFLTFont *font)

int(* mflt_iterate_otf_feature)(struct _MFLTFont *font, MFLTOtfSpec *spec, int from, int to, unsigned char *table)

int(* mflt_iterate_otf_feature)(struct _MFLTFont *font, MFLTOtfSpec *spec, int from, int to, unsigned char *table)

MSymbol(* mflt_font_id)(struct _MFLTFont *font)