1 /***************************************************************************/
5 /* PostScript hinting algorithm 1 (specification). */
7 /* Copyright 2001 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
10 /* This file is part of the FreeType project, and may only be used, */
11 /* modified, and distributed under the terms of the FreeType project */
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13 /* this file you indicate that you have read the license and */
14 /* understand and accept it fully. */
16 /***************************************************************************/
19 #ifndef __PSHALGO1_H__
20 #define __PSHALGO1_H__
26 typedef struct PSH1_HintRec_
* PSH1_Hint
;
30 PSH1_HINT_FLAG_GHOST
= PS_HINT_FLAG_GHOST
,
31 PSH1_HINT_FLAG_BOTTOM
= PS_HINT_FLAG_BOTTOM
,
32 PSH1_HINT_FLAG_ACTIVE
= 4
36 #define psh1_hint_is_active( x ) \
37 ( ( (x)->flags & PSH1_HINT_FLAG_ACTIVE ) != 0 )
38 #define psh1_hint_is_ghost( x ) \
39 ( ( (x)->flags & PSH1_HINT_FLAG_GHOST ) != 0 )
41 #define psh1_hint_activate( x ) (x)->flags |= PSH1_HINT_FLAG_ACTIVE
42 #define psh1_hint_deactivate( x ) (x)->flags &= ~PSH1_HINT_FLAG_ACTIVE
44 typedef struct PSH1_HintRec_
59 /* this is an interpolation zone used for strong points; */
60 /* weak points are interpolated according to their strong */
62 typedef struct PSH1_ZoneRec_
69 } PSH1_ZoneRec
, *PSH1_Zone
;
72 typedef struct PSH1_Hint_TableRec_
78 PSH1_Hint
* sort_global
;
82 PS_Mask_Table hint_masks
;
83 PS_Mask_Table counter_masks
;
85 } PSH1_Hint_TableRec
, *PSH1_Hint_Table
;
89 ps1_hints_apply( PS_Hints ps_hints
,
91 PSH_Globals globals
);
95 extern PSH1_Hint_Table ps1_debug_hint_table
;
98 (*PSH1_HintFunc
)( PSH1_Hint hint
,
101 extern PSH1_HintFunc ps1_debug_hint_func
;
106 #endif /* __PSHALGO1_H__ */