Provided by: m17n-docs_1.8.3-1_all bug

NAME

       m17nFLT_-_FLT -  - API provided by libm17n-flt.so

SYNOPSIS

   Data Structures
       struct MFLTGlyph
           Type of information about a glyph.
       struct MFLTGlyphAdjustment
           Type of information about a glyph position adjustment.
       struct MFLTGlyphString
           Type of information about a glyph sequence.
       struct MFLTOtfSpec
           Type of specification of GSUB and GPOS OpenType tables.
       struct MFLTFont
           Type of font to be used by the FLT driver.

   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.
       void mflt_dump_gstring (MFLTGlyphString *gstring)
           Dump an MFLTGlyphString.

   Variables
       int mflt_enable_new_feature
           Flag to control several new OTF handling commands.
       int(* mflt_iterate_otf_feature )(struct _MFLTFont *font, MFLTOtfSpec *spec, int from, int
           to, unsigned char *table)
       MSymbol(* mflt_font_id )(struct _MFLTFont *font)
       int(* mflt_try_otf )(struct _MFLTFont *font, MFLTOtfSpec *spec, MFLTGlyphString *gstring,
           int from, int to)

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 mdbFLT.

Data Structure Documentation

   MFLTGlyph
       Type of information about a glyph.

       FIELD DOCUMENTATION:

       int MFLTGlyph::c Character code (Unicode) of the glyph.

       unsigned int MFLTGlyph::code Glyph ID of the glyph in the font.

       int MFLTGlyph::from Starting index of the run in MFLTGlyphString that is replaced by this
       glyph.

       int MFLTGlyph::to Ending index of the run in MFLTGlyphString that is replaced by this
       glyph.

       int MFLTGlyph::xadv Advance width for horizontal layout expressed in 26.6 fractional pixel
       format.

       int MFLTGlyph::yadv Advance height for vertical layout expressed in 26.6 fractional pixel
       format.

       int MFLTGlyph::ascent Ink metrics of the glyph expressed in 26.6 fractional pixel format.

       int MFLTGlyph::descent

       int MFLTGlyph::lbearing

       int MFLTGlyph::rbearing

       int MFLTGlyph::xoff Horizontal and vertical adjustments for the glyph positioning
       expressed in 26.6 fractional pixel format.

       int MFLTGlyph::yoff

       unsigned MFLTGlyph::encoded Flag to tell whether the member <code> has already been set to
       a glyph ID in the font.

       unsigned MFLTGlyph::measured Flag to tell if the metrics of the glyph (members <xadv> thru
       <rbearing>) are already calculated.

       unsigned MFLTGlyph::adjusted Flag to tell if the metrics of the glyph is adjusted, i.e.
       <xadv> or <yadv> is different from the normal size, or <xoff> or <yoff> is nonzero.

       unsigned MFLTGlyph::internal For m17n-lib's internal use only.

   MFLTGlyphAdjustment
       Type of information about a glyph position adjustment.

       FIELD DOCUMENTATION:

       int MFLTGlyphAdjustment::xadv Adjustments for advance width for horizontal layout and
       advance height for vertical layout expressed in 26.6 fractional pixel format.

       int MFLTGlyphAdjustment::yadv

       int MFLTGlyphAdjustment::xoff Horizontal and vertical adjustments for glyph positioning
       expressed in 26.6 fractional pixel format.

       int MFLTGlyphAdjustment::yoff

       short MFLTGlyphAdjustment::back Number of glyphs to go back for drawing a glyph.

       unsigned MFLTGlyphAdjustment::advance_is_absolute 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 MFLTGlyphAdjustment::set Should be set to 1 iff at least one of the other members
       has a nonzero value.

   MFLTGlyphString
       Type of information about a glyph sequence.

       FIELD DOCUMENTATION:

       int MFLTGlyphString::glyph_size The actual byte size of elements of the array pointed by
       the member glyphs. It must be equal to or greater than 'sizeof (MFLTGlyph)'.

       MFLTGlyph* MFLTGlyphString::glyphs Array of glyphs.

       int MFLTGlyphString::allocated Number of elements allocated in glyphs.

       int MFLTGlyphString::used Number of elements in glyphs in use.

       unsigned int MFLTGlyphString::r2l Flag to tell if the glyphs should be drawn from
       right-to-left or not.

   MFLTOtfSpec
       Type of specification of GSUB and GPOS OpenType tables.

       FIELD DOCUMENTATION:

       MSymbol MFLTOtfSpec::sym Unique symbol representing the spec. This is the same as the
       OTF-SPEC of the FLT.

       unsigned int MFLTOtfSpec::script Tags for script and language system.

       unsigned int MFLTOtfSpec::langsys

       unsigned int* MFLTOtfSpec::features[2] Array of GSUB (1st element) and GPOS (2nd element)
       feature tag arrays. Each array is terminated by 0. It may be NULL if there is no feature
       to specify.

       (1) The case of using this information for selecting which features to apply to a glyph
       string. If the array is NULL, apply no feature. If the first element is 0xFFFFFFFF, apply
       all available features except for what appear in the second and following elements (if
       any). Otherwise, apply all listed features.

       (2) The case of using this information for checking if a a font can be drived by a
       specific FLT. If the array is NULL, the font should not have any features. Otherwize, the
       font should have all features before 0xFFFFFFFF element (if any) and should not have any
       features after that element.

   MFLTFont
       Type of font to be used by the FLT driver.

       FIELD DOCUMENTATION:

       MSymbol MFLTFont::family Family name of the font. It may be Mnil if the family name is not
       important in finding a Font Layout Table suitable for the font (for instance, in the case
       that the font is an OpenType font).

       int MFLTFont::x_ppem Horizontal font sizes in pixels per EM.

       int MFLTFont::y_ppem Vertical font sizes in pixels per EM.

       int(* MFLTFont::get_glyph_id) (struct _MFLTFont *font, MFLTGlyphString *gstring, int from,
       int to) Callback function to get glyph IDs for glyphs between FROM (inclusive) and TO
       (exclusive) of GSTRING. If the member <encoded> of a glyph is zero, the member <code> of
       that glyph is a character code. The function must convert it to the glyph ID of FONT.

       int(* MFLTFont::get_metrics) (struct _MFLTFont *font, MFLTGlyphString *gstring, int from,
       int to) Callback function to get metrics of glyphs between FROM (inclusive) and TO
       (exclusive) of GSTRING. If the member <measured> of a glyph is zero, the function must set
       the members <xadv>, <yadv>, <ascent>, <descent>, <lbearing>, and <rbearing> of the glyph.

       int(* MFLTFont::check_otf) (struct _MFLTFont *font, MFLTOtfSpec *spec) Callback function
       to check if the font has OpenType GSUB/GPOS features for a specific script/language. The
       function must return 1, if the font satisfies SPEC, or 0. It must be NULL if the font does
       not have OpenType tables.

       int(* MFLTFont::drive_otf) (struct _MFLTFont *font, MFLTOtfSpec *spec, MFLTGlyphString
       *in, int from, int to, MFLTGlyphString *out, MFLTGlyphAdjustment *adjustment) Callback
       function to apply OpenType features in SPEC to glyphs between FROM (inclusive) and TO
       (exclusive) of IN. The resulting glyphs are appended to the tail of OUT. If OUT does not
       have a room to store all the resulting glyphs, it must return -2. It must be NULL if the
       font does not have OpenType tables.

       void* MFLTFont::internal For m17n-lib's internal use only. It should be initialized to
       NULL.

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.

Variable Documentation

   int mflt_enable_new_feature
       Flag to control several new OTF handling commands. If the variable mflt_enable_new_feature
       is nonzero, the function mflt_run() can drive a Font Layout Table that contains the new
       OTF-related commands ':otf?' and/or OTF feature specification in a category table.

   int(* mflt_iterate_otf_feature) (struct _MFLTFont *font, MFLTOtfSpec *spec, int from, int to,
       unsigned char *table) (struct _MFLTFont * font, MFLTOtfSpec * spec, int from, int to,
       unsigned char * table)
   MSymbol(* mflt_font_id) (struct _MFLTFont *font) (struct _MFLTFont * font)
   int(* mflt_try_otf) (struct _MFLTFont *font, MFLTOtfSpec *spec, MFLTGlyphString *gstring, int
       from, int to) (struct _MFLTFont * font, MFLTOtfSpec * spec, MFLTGlyphString * gstring, int
       from, int to)

Author

       Generated automatically by Doxygen for The m17n Library from the source code.

COPYRIGHT

       Copyright (C) 2001 Information-technology Promotion Agency (IPA)
       Copyright (C) 2001-2011 National Institute of Advanced Industrial Science and Technology
       (AIST)
       Permission is granted to copy, distribute and/or modify this document under the terms of
       the GNU Free Documentation License <http://www.gnu.org/licenses/fdl.html>.