Visualization Library 2.0.0-b5

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
pshrec.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* pshrec.h */
4 /* */
5 /* Postscript (Type1/Type2) hints recorder (specification). */
6 /* */
7 /* Copyright 2001, 2002, 2003, 2006, 2008 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9 /* */
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. */
15 /* */
16 /***************************************************************************/
17 
18 
19  /**************************************************************************/
20  /* */
21  /* The functions defined here are called from the Type 1, CID and CFF */
22  /* font drivers to record the hints of a given character/glyph. */
23  /* */
24  /* The hints are recorded in a unified format, and are later processed */
25  /* by the `optimizer' and `fitter' to adjust the outlines to the pixel */
26  /* grid. */
27  /* */
28  /**************************************************************************/
29 
30 
31 #ifndef __PSHREC_H__
32 #define __PSHREC_H__
33 
34 
35 #include <ft2build.h>
36 #include FT_INTERNAL_POSTSCRIPT_HINTS_H
37 #include "pshglob.h"
38 
39 
41 
42 
43  /*************************************************************************/
44  /*************************************************************************/
45  /***** *****/
46  /***** GLYPH HINTS RECORDER INTERNALS *****/
47  /***** *****/
48  /*************************************************************************/
49  /*************************************************************************/
50 
51  /* handle to hint record */
52  typedef struct PS_HintRec_* PS_Hint;
53 
54  /* hint types */
55  typedef enum PS_Hint_Type_
56  {
59 
60  } PS_Hint_Type;
61 
62 
63  /* hint flags */
64  typedef enum PS_Hint_Flags_
65  {
68 
69  } PS_Hint_Flags;
70 
71 
72  /* hint descriptor */
73  typedef struct PS_HintRec_
74  {
78 
79  } PS_HintRec;
80 
81 
82 #define ps_hint_is_active( x ) ( (x)->flags & PS_HINT_FLAG_ACTIVE )
83 #define ps_hint_is_ghost( x ) ( (x)->flags & PS_HINT_FLAG_GHOST )
84 #define ps_hint_is_bottom( x ) ( (x)->flags & PS_HINT_FLAG_BOTTOM )
85 
86 
87  /* hints table descriptor */
88  typedef struct PS_Hint_TableRec_
89  {
92  PS_Hint hints;
93 
95 
96 
97  /* hint and counter mask descriptor */
98  typedef struct PS_MaskRec_
99  {
104 
105  } PS_MaskRec, *PS_Mask;
106 
107 
108  /* masks and counters table descriptor */
109  typedef struct PS_Mask_TableRec_
110  {
113  PS_Mask masks;
114 
116 
117 
118  /* dimension-specific hints descriptor */
119  typedef struct PS_DimensionRec_
120  {
124 
126 
127 
128  /* glyph hints descriptor */
129  /* dimension 0 => X coordinates + vertical hints/stems */
130  /* dimension 1 => Y coordinates + horizontal hints/stems */
131  typedef struct PS_HintsRec_
132  {
137  PS_DimensionRec dimension[2];
138 
139  } PS_HintsRec, *PS_Hints;
140 
141  /* */
142 
143  /* initialize hints recorder */
144  FT_LOCAL( FT_Error )
145  ps_hints_init( PS_Hints hints,
146  FT_Memory memory );
147 
148  /* finalize hints recorder */
149  FT_LOCAL( void )
150  ps_hints_done( PS_Hints hints );
151 
152  /* initialize Type1 hints recorder interface */
153  FT_LOCAL( void )
155 
156  /* initialize Type2 hints recorder interface */
157  FT_LOCAL( void )
159 
160 
161 #ifdef DEBUG_HINTER
162  extern PS_Hints ps_debug_hints;
163  extern int ps_debug_no_horz_hints;
164  extern int ps_debug_no_vert_hints;
165 #endif
166 
167  /* */
168 
169 
171 
172 
173 #endif /* __PS_HINTER_RECORD_H__ */
174 
175 
176 /* END */
PS_Hint_Type hint_type
Definition: pshrec.h:136
int FT_Error
Definition: fttypes.h:296
typedefFT_BEGIN_HEADER struct PS_HintRec_ * PS_Hint
Definition: pshrec.h:52
PS_Mask masks
Definition: pshrec.h:113
t1_hints_funcs_init(T1_Hints_FuncsRec *funcs)
Definition: pshrec.c:1145
FT_UInt32 magic
Definition: pshrec.h:135
#define FT_END_HEADER
Definition: ftheader.h:54
FT_Memory memory
Definition: pshrec.h:133
signed int FT_Int
Definition: fttypes.h:216
t2_hints_funcs_init(T2_Hints_FuncsRec *funcs)
Definition: pshrec.c:1211
FT_UInt max_hints
Definition: pshrec.h:91
struct PS_Hint_TableRec_ * PS_Hint_Table
unsigned int FT_UInt32
Definition: ftconfig.h:133
struct PS_Mask_TableRec_ * PS_Mask_Table
FT_UInt end_point
Definition: pshrec.h:103
struct PS_MaskRec_ PS_MaskRec
FT_UInt num_bits
Definition: pshrec.h:100
PS_Hint_TableRec hints
Definition: pshrec.h:121
enum PS_Hint_Flags_ PS_Hint_Flags
unsigned char FT_Byte
Definition: fttypes.h:150
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
struct PS_HintsRec_ * PS_Hints
FT_UInt num_hints
Definition: pshrec.h:90
#define FT_LOCAL(x)
Definition: ftconfig.h:235
struct PS_HintsRec_ PS_HintsRec
struct PS_MaskRec_ * PS_Mask
FT_Int len
Definition: pshrec.h:76
ps_hints_done(PS_Hints hints)
Definition: pshrec.c:786
PS_Mask_TableRec counters
Definition: pshrec.h:123
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
Definition: ftsystem.h:66
PS_Hint_Type_
Definition: pshrec.h:55
FT_UInt flags
Definition: pshrec.h:77
FT_UInt max_masks
Definition: pshrec.h:112
FT_UInt max_bits
Definition: pshrec.h:101
struct PS_Hint_TableRec_ PS_Hint_TableRec
enum PS_Hint_Type_ PS_Hint_Type
struct PS_Mask_TableRec_ PS_Mask_TableRec
struct PS_DimensionRec_ * PS_Dimension
PS_Hint_Flags_
Definition: pshrec.h:64
struct PS_HintRec_ PS_HintRec
PS_Mask_TableRec masks
Definition: pshrec.h:122
ps_hints_init(PS_Hints hints, FT_Memory memory)
Definition: pshrec.c:800
unsigned int FT_UInt
Definition: fttypes.h:227
FT_Error error
Definition: pshrec.h:134
FT_Int pos
Definition: pshrec.h:75
PS_Hint hints
Definition: pshrec.h:92
struct PS_DimensionRec_ PS_DimensionRec
FT_UInt num_masks
Definition: pshrec.h:111
FT_Byte * bytes
Definition: pshrec.h:102