From: handa Date: Tue, 24 Nov 2009 04:38:29 +0000 (+0000) Subject: (OTF_drive_gsub_with_log, OTF_drive_gpos_with_log): X-Git-Tag: REL-0-9-11~20 X-Git-Url: http://git.chise.org/gitweb/?p=m17n%2Flibotf.git;a=commitdiff_plain;h=50013a522e511ab061acecd0b2bda263dc23c384 (OTF_drive_gsub_with_log, OTF_drive_gpos_with_log): Extern them. (OTF_get_drive_log): Delete extern. --- diff --git a/src/otf.h b/src/otf.h index 47d93e7..e2bebce 100644 --- a/src/otf.h +++ b/src/otf.h @@ -1226,11 +1226,11 @@ typedef struct correct value from the above character code via cmap if such a glyph is available in the font. - The function OTF_drive_gpos2 may insert a glyph whose glyph_id is - 0 but positioning_type is positive. It is not an actual glyph - but just contains positioning information that should be - accumulated to the positioning information of the previous - glyphs. */ + The functions OTF_drive_gpos2 and OTF_driver_gpos_with_log may + insert a glyph whose glyph_id is 0 but positioning_type is + positive. It is not an actual glyph but just contains + positioning information that should be accumulated to the + positioning information of the previous glyphs. */ OTF_GlyphID glyph_id; /* GlyphClass of the glyph. The value is extracted from the GDEF @@ -1241,12 +1241,20 @@ typedef struct GDEF table. */ unsigned MarkAttachClass; - /* Positioning format type of the glyph. The value specifies how - the glyph positioning information is encoded in the member . - If the value is N, the union member fN, is used. If the value is - zero, the glyph has no positioning information, i.e. it should be - drawn at the normal position. */ - int positioning_type; + /* The lowest 4-bit is a positioning format type of the glyph. The + value specifies how the glyph positioning information is encoded + in the member . If the value is N, the union member fN, is + used. If the value is zero, the glyph has no positioning + information, i.e. it should be drawn at the normal position. + + OTF_drive_gsub, OTF_drive_gsub_alternate, OTF_drive_gpos, and + OTF_drive_gpos2 always sets the higher bits to zero. + + OTF_drive_gsub_with_log and OTF_drive_gpos_with_log sets the + higher 16-bit (i.e. 5th to 20th bits) to the index number of the + lastly applied feature on the glyph plus one. If no feature was + applied, those bits are zero. */ + unsigned int positioning_type; union { struct { int from, to; @@ -1359,6 +1367,18 @@ extern int OTF_drive_gsub (OTF *otf, OTF_GlyphString *gstring, const char *script, const char *language, const char *features); +/*** + Process glyph string by GSUB table with log. + + This is like OTF_drive_gsub(), but records which feature is + applied to each glyph in the higher bits of `positioning_type' + member of OTF_Glyph. */ + +extern int OTF_drive_gsub_with_log (OTF *otf, OTF_GlyphString *gstring, + const char *script, const char *language, + const char *features); + + /*** (3-5) OTF_drive_gpos() */ /*** @@ -1384,6 +1404,18 @@ extern int OTF_drive_gpos2 (OTF *otf, OTF_GlyphString *gstring, const char *script, const char *language, const char *features); +/*** + Process glyph string by GPOS table with log. + + This is like OTF_drive_pos_2(), but records which feature is + applied to each glyph in the higher bits of `positioning_type' + member of OTF_Glyph. */ + +extern int OTF_drive_gpos_with_log (OTF *otf, OTF_GlyphString *gstring, + const char *script, const char *language, + const char *features); + + /*** (3-6) OTF_drive_tables() */ /*** @@ -1529,8 +1561,6 @@ extern int OTF_put_data (OTF *otf, char *id, void *data, extern void *OTF_get_data (OTF *otf, char *id); -extern OTF_Tag *OTF_get_drive_log (OTF *otf); - #ifdef __cplusplus } #endif