revert between 56095 -> 55830 in arch
[AROS.git] / workbench / libs / freetype2 / ftglyphengine.h
blob60eb75f8ef5c76c5eebf60bb2e8e1ecac49758d1
1 #ifndef _FT_AROS_FTGLYPHENGINE_H
2 #define _FT_AROS_FTGLYPHENGINE_H
4 #include <exec/libraries.h>
6 #include <ft2build.h>
7 #include FT_FREETYPE_H
8 #include FT_IMAGE_H
9 #include FT_RENDER_H
10 #include FT_TRUETYPE_TABLES_H
11 #include FT_OUTLINE_H
13 #define OT_Spec1_FontFile (OT_Spec1 | OT_Indirect)
14 #define OT_Spec2_DefCodePage (OT_Level1 | 0x102)
15 #define OT_Spec2_CodePage (OT_Level1 | OT_Indirect | 0x102)
16 #define OT_Spec3_AFMFile (OT_Level1 | OT_Indirect | 0x103)
17 #define OT_Spec4_Metric (OT_Level1 | 0x104)
18 #define OT_Spec5_BBox (OT_Level1 | 0x105)
19 #define OT_Spec6_FaceNum (OT_Level1 | 0x106) // index for .ttc files
20 #define OT_Spec7_BMSize (OT_Level1 | 0x107) // embbeded bitmap size
21 // 0 == scalable
22 #define OT_GlyphMap8Bit_Old (OT_Level1 | 0x108)
23 #define OT_Spec9_Hinter (OT_Level1 | 0x109)
25 // Values for OT_Spec4_Metric
26 #define METRIC_GLOBALBBOX 0 // default
27 #define METRIC_RAW_EM 1
28 #define METRIC_ASCEND 2
29 #define METRIC_TYPOASCEND 3
30 #define METRIC_USWINASCEND 4
31 #define METRIC_CUSTOMBBOX 5
32 #define METRIC_BMSIZE 6
34 // Values for OT_Spec9_Hinter
35 #define HINTER_DEFAULT 0 // default: postscript hinter for PS,
36 // truetype hinter for TT if bytecode interpreter
37 // is compiled in, autohinter for all other cases.
38 #define HINTER_FORCEAUTO 1 // Use autohinter instead of PS or TT hinter.
39 #define HINTER_NONE 2 // Use NO hinter (may speed up things, but bad results).
40 // Default for bitmap fonts.
42 struct FT_GlyphEngine_ {
43 /* diskfont standard */
44 struct Library *gle_Library; /* should be our lib base */
46 char *gle_Name; /* library name "freetype" */
48 /* freetype.library specific - private data */
50 /* freetype specific entites */
51 FT_Library engine;
53 FT_Face face;
54 FT_CharMap char_map;
56 /* freetype.library current request/state */
57 int last_error;
58 int face_established;
59 char ft_filename[256];
60 char base_filename[256];
61 char afm_filename[256];
62 //char bold_filename[256];
63 //char italic_filename[256];
64 //char bold_italic_filename[256];
65 int face_num;
67 unsigned long cmap_index;
68 unsigned long requested_cmap;
69 unsigned short platform, encoding;
70 int request_char;
71 int request_char2;
72 int glyph_code;
74 int instance_changed;
75 int point_size;
76 int corrected_upem;
77 int metric_source;
78 int metric_custom;
79 int xres, yres;
80 int hinted;
82 FT_Fixed hold_sin, hold_cos;
84 int do_rotate;
85 FT_Matrix rotate_matrix;
87 int do_shear;
88 FT_Matrix shear_matrix;
90 FT_Matrix matrix;
92 // int do_embold;
93 // int embold_x, embold_y;
95 // int bold_sig, italic_sig;
97 unsigned short int codepage[256];
99 struct GlyphMap *GMap;
102 typedef struct FT_GlyphEngine_ FT_GlyphEngine ;
104 int set_last_error(FT_GlyphEngine *, int);
105 void set_default_codepage(FT_GlyphEngine *);
106 void FreeGE(FT_GlyphEngine *);
107 FT_GlyphEngine *AllocGE(void);
109 /* flag that we need to pick an encoding table */
110 #define NO_CMAP_SET 0xFFFFFFFF
112 #endif /*_FT_AROS_FTGLYPHENGINE_H*/