(struct _MFLTGlyph): New member encoded and measured.
authorhanda <handa>
Mon, 10 Sep 2007 04:50:26 +0000 (04:50 +0000)
committerhanda <handa>
Mon, 10 Sep 2007 04:50:26 +0000 (04:50 +0000)
(struct _MFLTFont): Prototype of get_glyph_id changed.

src/m17n-flt.h

index 0be2159..4277d18 100644 (file)
@@ -65,17 +65,23 @@ struct _MFLTGlyph
   unsigned int code;
   /***en Glyph indices indicating the range of original glyphs.  */
   int from, to;
-  /***en Ink metrics of the glyph expressed in 26.6 fractional pixel
-      format.  */
-  int ascent, descent, lbearing, rbearing;
   /***en Advance width for horizontal layout and advance height for
       vertical layout expressed in 26.6 fractional pixel format.  */
   int xadv, yadv;
+  /***en Ink metrics of the glyph expressed in 26.6 fractional pixel
+      format.  */
+  int ascent, descent, lbearing, rbearing;
   /***en Horizontal and vertical adjustments for the glyph positioning
       expressed in 26.6 fractional pixel format.  */
   int xoff, yoff;
+  /***en Flag to tell if the member <code> is encoded into a glyph ID
+      of a font.  */
+  int encoded : 1;
+  /***en Flag to tell if the metrics of the glyph (members <xadv> thru
+      <rbearing>) are already calculated.  */
+  int measured : 1;
   /***en For m17n-lib's internal use only.  */
-  unsigned int internal;
+  unsigned int internal : 30;
 };
 
 /***en
@@ -98,7 +104,7 @@ struct _MFLTGlyphAdjustment
   int xoff, yoff;
   /***en Number of glyphs to go back for drawing a glyph.  */
   short back;
-  /***en If nonzero, the member #xadv and #yadv are absolute, i.e.,
+  /***en 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 advance_is_absolute : 1;
@@ -126,10 +132,10 @@ struct _MFLTGlyphString
   int allocated;
   /***en How many elements in #glyphs are in use.  */
   int used;
-  /***en OTF Script tag.  Zero means */
+  /***en OTF script tag.  Zero means */
   unsigned int script;
-  /***en OTF Langsys tag.  */
-  unsigned int langsys;
+  /***en OTF language system tag.  */
+  unsigned int language;
 };
 
 /***en
@@ -162,7 +168,8 @@ typedef struct _MFLTFont MFLTFont;
 struct _MFLTFont
 {
   int x_ppem, y_ppem;
-  int (*get_glyph_id) (MFLTFont *font, MFLTGlyph *g);
+  int (*get_glyph_id) (MFLTFont *font, MFLTGlyphString *gstring,
+                      int form, int to);
   int (*get_metric) (MFLTFont *font, MFLTGlyphString *gstring, int form, int to);
   int (*suitable_p) (MFLTFont *font, MSymbol family, MFLTOtfSpec *spec);
   int (*drive_otf) (MFLTFont *font, MFLTOtfSpec *spec,