S16 xAvgCharWidth;
U16 usWeightClass;
U16 usWidthClass;
- U16 fsType;
U16 ySubscriptXSize;
U16 ySubscriptYSize;
U16 ySubscriptXOffset;
U8 panose_Midline;
U8 panose_XHeight;
U32 ulCharRange[4];
- U8 achVendID[4];
U16 fsSelection;
U16 fsFirstCharIndex;
typedef struct _table_hea
{
- S16 ascent;
- S16 descent;
- S16 lineGap;
U16 advanceWidthMax;
S16 minLeftSideBearing;
S16 minRightSideBearing;
#define GLYPH_ON_CURVE 0x01
#define GLYPH_CONTOUR_START 0x40
#define GLYPH_CONTOUR_END 0x80
+
+typedef U32 unicode_t;
+
typedef struct _ttfpoint {
int x,y;
U8 flags;
S16 dir_hint;
} table_head_t;
+typedef struct _table_post {
+ U16 italic_angle;
+ U16 underline_position;
+ U16 underline_thickness;
+} table_post_t;
+
typedef struct _ttf {
+ char*name;
+
ttf_table_t*tables;
table_head_t*head;
table_maxp_t*maxp;
table_os2_t*os2;
table_hea_t*hea;
+ table_post_t*post;
U16 flags;
char is_vertical;
+
+ S16 ascent;
+ S16 descent;
+ S16 lineGap;
+
int num_glyphs;
ttfglyph_t*glyphs;
+
+ int unicode_size;
+ unicode_t*unicode;
U32 version;
} ttf_t;
-ttf_t*load_ttf(void*data, int length);
+ttf_t*ttf_new();
+void ttf_reduce(ttf_t*ttf);
+ttf_t*ttf_load(void*data, int length);
ttf_table_t*ttf_addtable(ttf_t*ttf, U32 tag);
+void ttf_create_truetype_tables(ttf_t*ttf);
+void ttf_dump(ttf_t*ttf);
+void ttf_save(ttf_t*ttf, const char*filename);
#endif