source: branches/2.2/filemanager/tp/dompdf/lib/ttf2ufm/ttf2ufm-src/global.h @ 3019

Revision 3019, 6.1 KB checked in by amuller, 14 years ago (diff)

Ticket #1135 - Corrigindo CSS e adicionando filemanager

Line 
1/*
2 * see COPYRIGHT
3 */
4
5
6/* options */
7
8extern int      encode; /* encode the resulting file */
9extern int      pfbflag;        /* produce compressed file */
10extern int      wantafm;        /* want to see .afm instead of .t1a on stdout */
11extern int      correctvsize;   /* try to correct the vertical size of characters */
12extern int      wantuid;        /* user wants UniqueID entry in the font */
13extern int      allglyphs;      /* convert all glyphs, not only 256 of them */
14extern int      warnlevel;      /* the level of permitted warnings */
15extern int      forcemap; /* do mapping even on non-Unicode fonts */
16/* options - maximal limits */
17extern int      max_stemdepth;  /* maximal depth of stem stack in interpreter */
18/* options - debugging */
19extern int      absolute;       /* print out in absolute values */
20extern int      reverse;        /* reverse font to Type1 path directions */
21/* options - suboptions of Outline Processing */
22extern int      optimize;       /* enables space optimization */
23extern int      smooth; /* enable smoothing of outlines */
24extern int      transform;      /* enables transformation to 1000x1000 matrix */
25extern int      hints;  /* enables autogeneration of hints */
26extern int      subhints;       /* enables autogeneration of substituted hints */
27extern int      trybold;        /* try to guess whether the font is bold */
28extern int      correctwidth;   /* try to correct the character width */
29extern int      vectorize;      /* vectorize the bitmaps */
30extern int      use_autotrace;  /* use the autotrace library on bitmap */
31/* options - suboptions of File Generation */
32extern int      gen_pfa;        /* generate the font file */
33extern int      gen_afm;        /* generate the metrics file */
34extern int      gen_dvienc;     /* generate the dvips encoding file */
35
36/* not quite options to select a particular source encoding */
37extern int      force_pid; /* specific platform id */
38extern int      force_eid; /* specific encoding id */
39
40/* other globals */
41extern FILE    *null_file, *pfa_file, *afm_file, *ufm_file, *dvienc_file;
42extern int      numglyphs;
43
44/* warnings */
45
46#define WARNING_1       if(warnlevel >= 1)
47#define WARNING_2       if(warnlevel >= 2)
48#define WARNING_3       if(warnlevel >= 3)
49#define WARNING_4       if(warnlevel >= 4)
50
51/*
52 * Bitmap control macros
53 */
54
55#define BITMAP_BYTES(size)      (((size)+7)>>3)
56#define DEF_BITMAP(name, size)  unsigned char name[BITMAP_BYTES(size)]
57#define SET_BITMAP(name, bit)   ( name[(bit)>>3] |= (1<<((bit)&7)) )
58#define CLR_BITMAP(name, bit)   ( name[(bit)>>3] &= ~(1<<((bit)&7)) )
59#define IS_BITMAP(name, bit)    ( name[(bit)>>3] & (1<<((bit)&7)) )
60
61/* debugging */
62
63/* debug flags */
64#define DEBUG_UNICODE   0x00000001 /* unicode to 8-bit code conversion */
65#define DEBUG_MAINSTEMS 0x00000002 /* glyph-wide main stem generation */
66#define DEBUG_SUBSTEMS  0x00000004 /* substituted stem generation */
67#define DEBUG_STEMS     (DEBUG_MAINSTEMS|DEBUG_SUBSTEMS)
68#define DEBUG_REVERSAL  0x00000008 /* reversal of the paths */
69#define DEBUG_FIXCVDIR  0x00000010 /* fixcvdir() */
70#define DEBUG_STEMOVERLAP       0x00000020 /* stemoverlap() */
71#define DEBUG_BLUESTEMS 0x00000040 /* markbluestems() */
72#define DEBUG_STRAIGHTEN        0x00000080 /* markbluestems() */
73#define DEBUG_EXTMAP    0x00000100 /* parsing of external map */
74#define DEBUG_TOINT     0x00000200 /* conversion of path to integer */
75#define DEBUG_BUILDG    0x00000400 /* building of glyph path */
76#define DEBUG_QUAD      0x00000800 /* splitting curves by quadrants */
77#define DEBUG_SQEQ      0x00001000 /* square equation solver */
78#define DEBUG_COMPOSITE 0x00002000 /* handling of composite glyphs */
79#define DEBUG_FCONCISE  0x00004000 /* normalization of curves */
80#define DEBUG_FT                0x00008000 /* FreeType front-end */
81#define DEBUG_BITMAP    0x00010000 /* conversion from bitmap */
82#define DEBUG_DISABLED  0x80000000 /* special flag: temporary disable debugging */
83
84/* at what we want to look now */
85#ifndef DEBUG
86#       define DEBUG (0)
87#endif
88
89/* uncomment the next line if debugging data is wanted for one glyph only */
90/* #define DBG_GLYPH    "C118"  /* */
91
92#if DEBUG==0
93#       define ISDBG(name)      (0)
94#       define ENABLEDBG(condition) (0)
95#       define DISABLEDBG(condition) (0)
96#else
97        extern int debug; /* collection of the flags */
98/* this ISDBG will only work on ANSI C, not K&R */
99#       define ISDBG(name)      ( (debug & DEBUG_DISABLED) ? 0 : (debug & (DEBUG_##name)) )
100#       define ENABLEDBG(condition) ( (condition) ? (debug&=~DEBUG_DISABLED) : 0 )
101#       define DISABLEDBG(condition) ( (condition) ? (debug|=DEBUG_DISABLED) : 0 )
102#endif
103
104#ifdef DBG_GLYPH
105#       define DBG_TO_GLYPH(g) DISABLEDBG( strcmp( (g)->name, DBG_GLYPH ) )
106#       define DBG_FROM_GLYPH(g) ENABLEDBG(1)
107#else
108#       define DBG_TO_GLYPH(g) (0)
109#       define DBG_FROM_GLYPH(g) (0)
110#endif
111
112/* prototypes */
113int iscale( int val);
114double fscale( double val);
115int unicode_rev_lookup( int unival);
116void bmp_outline( GLYPH *g, int scale, char *bmap,
117        int xsz, int ysz, int xoff, int yoff);
118int isign( int x);
119int fsign( double x);
120char *dupcnstring( unsigned char *s, int len);
121
122/* global metrics for a font */
123
124struct font_metrics {
125        /* post */
126        double  italic_angle;
127        short   underline_position;
128        short   underline_thickness;
129        short   is_fixed_pitch;
130
131        /* hhea */
132        short   ascender;
133        short   descender;
134
135        /* head */
136        unsigned short  units_per_em;
137        short   bbox[4];
138
139        /* name */
140        char    *name_copyright;
141        char    *name_family;
142        char    *name_style;
143        char    *name_full;
144        char    *name_version;
145        char    *name_ps;
146
147        /* other */
148        int             force_bold;
149};
150
151/* size of the encoding table - glyphs beyond 255 are actually unnumbered */
152
153#define ENCTABSZ        1024
154
155/* switch table structure for front-ends */
156
157#define MAXSUFFIX       10
158
159struct frontsw {
160        char  *name; /* name of the front end */
161        char  *descr; /* description of the front end */
162        char  *suffix[MAXSUFFIX]; /* possible file name suffixes */
163
164        void  (*open)(char *fname, char *arg); /* open font file */
165        void  (*close)(void); /* close font file */
166        int   (*nglyphs)(void); /* get the number of glyphs */
167        int   (*glnames)(GLYPH *glyphs); /* get the names of glyphs */
168        void  (*glmetrics)(GLYPH *glyphs); /* get the metrics of glyphs */
169        int   (*glenc)(GLYPH *glyphs, int *enc, int *unimap); /* get the encoding */
170        void  (*fnmetrics)(struct font_metrics *fm); /* get the font metrics */
171        void  (*glpath)(int glyphno, GLYPH *glyphs); /* get the glyph path */
172        void  (*kerning)(GLYPH *glyph_list); /* extract the kerning data */
173};
Note: See TracBrowser for help on using the repository browser.