MFLTGlyph
Type of information about a glyph.
FIELDDOCUMENTATION:intMFLTGlyph::c Character code (Unicode) of the glyph.
unsignedintMFLTGlyph::code Glyph ID of the glyph in the font.
intMFLTGlyph::from Starting index of the run in MFLTGlyphString that is replaced by this glyph.
intMFLTGlyph::to Ending index of the run in MFLTGlyphString that is replaced by this glyph.
intMFLTGlyph::xadv Advance width for horizontal layout expressed in 26.6 fractional pixel format.
intMFLTGlyph::yadv Advance height for vertical layout expressed in 26.6 fractional pixel format.
intMFLTGlyph::ascent Ink metrics of the glyph expressed in 26.6 fractional pixel format.
intMFLTGlyph::descentintMFLTGlyph::lbearingintMFLTGlyph::rbearingintMFLTGlyph::xoff Horizontal and vertical adjustments for the glyph positioning expressed in 26.6
fractional pixel format.
intMFLTGlyph::yoffunsignedMFLTGlyph::encoded Flag to tell whether the member <code> has already been set to a glyph ID in
the font.
unsignedMFLTGlyph::measured Flag to tell if the metrics of the glyph (members <xadv> thru <rbearing>)
are already calculated.
unsignedMFLTGlyph::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.
unsignedMFLTGlyph::internal For m17n-lib's internal use only.
MFLTGlyphAdjustment
Type of information about a glyph position adjustment.
FIELDDOCUMENTATION:intMFLTGlyphAdjustment::xadv Adjustments for advance width for horizontal layout and advance height for
vertical layout expressed in 26.6 fractional pixel format.
intMFLTGlyphAdjustment::yadvintMFLTGlyphAdjustment::xoff Horizontal and vertical adjustments for glyph positioning expressed in 26.6
fractional pixel format.
intMFLTGlyphAdjustment::yoffshortMFLTGlyphAdjustment::back Number of glyphs to go back for drawing a glyph.
unsignedMFLTGlyphAdjustment::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.
unsignedMFLTGlyphAdjustment::set Should be set to 1 if at least one of the other members has a nonzero
value.
MFLTGlyphString
Type of information about a glyph sequence.
FIELDDOCUMENTATION:intMFLTGlyphString::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::glyphsArrayofglyphs.intMFLTGlyphString::allocated Number of elements allocated in glyphs.
intMFLTGlyphString::used Number of elements in glyphs in use.
unsignedintMFLTGlyphString::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.
FIELDDOCUMENTATION:MSymbolMFLTOtfSpec::sym Unique symbol representing the spec. This is the same as the OTF-SPEC of the
FLT.
unsignedintMFLTOtfSpec::script Tags for script and language system.
unsignedintMFLTOtfSpec::langsysunsignedint*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.
FIELDDOCUMENTATION:MSymbolMFLTFont::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).
intMFLTFont::x_ppem Horizontal font sizes in pixels per EM.
intMFLTFont::y_ppem Vertical font sizes in pixels per EM.
int(*MFLTFont::get_glyph_id)(struct_MFLTFont*font,MFLTGlyphString*gstring,intfrom,intto)CallbackfunctiontogetglyphIDsforglyphsbetweenFROM(inclusive)andTO(exclusive)ofGSTRING.Ifthemember<encoded>ofaglyphiszero,themember<code>ofthatglyphisacharactercode.ThefunctionmustconvertittotheglyphIDofFONT.int(*MFLTFont::get_metrics)(struct_MFLTFont*font,MFLTGlyphString*gstring,intfrom,intto)CallbackfunctiontogetmetricsofglyphsbetweenFROM(inclusive)andTO(exclusive)ofGSTRING.Ifthemember<measured>ofaglyphiszero,thefunctionmustsetthemembers<xadv>,<yadv>,<ascent>,<descent>,<lbearing>,and<rbearing>oftheglyph.int(*MFLTFont::check_otf)(struct_MFLTFont*font,MFLTOtfSpec*spec)CallbackfunctiontocheckifthefonthasOpenTypeGSUB/GPOSfeaturesforaspecificscript/language.Thefunctionmustreturn1,ifthefontsatisfiesSPEC,or0.ItmustbeNULLifthefontdoesnothaveOpenTypetables.int(*MFLTFont::drive_otf)(struct_MFLTFont*font,MFLTOtfSpec*spec,MFLTGlyphString*in,intfrom,intto,MFLTGlyphString*out,MFLTGlyphAdjustment*adjustment)CallbackfunctiontoapplyOpenTypefeaturesinSPECtoglyphsbetweenFROM(inclusive)andTO(exclusive)ofIN.TheresultingglyphsareappendedtothetailofOUT.IfOUTdoesnothavearoomtostorealltheresultingglyphs,itmustreturn-2.ItmustbeNULLifthefontdoesnothaveOpenTypetables.void*MFLTFont::internal For m17n-lib's internal use only. It should be initialized to NULL.