(OTF_drive_gsub_with_log, OTF_drive_gpos_with_log):
authorhanda <handa>
Tue, 24 Nov 2009 04:38:29 +0000 (04:38 +0000)
committerhanda <handa>
Tue, 24 Nov 2009 04:38:29 +0000 (04:38 +0000)
Extern them.
(OTF_get_drive_log): Delete extern.

src/otf.h

index 47d93e7..e2bebce 100644 (file)
--- 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 <f>.
-     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 <f>.  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