X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=pdf2swf%2Fttf2pt1%2Fglobal.h;fp=pdf2swf%2Fttf2pt1%2Fglobal.h;h=d8e9b025eb085db863d40306afcb9123eb4ae87f;hb=92c5f229fdf4d1a1d1efd8205dae033e70d07a1a;hp=0000000000000000000000000000000000000000;hpb=774da0eb175e36c6b8a563f3a7af82e6640b19c9;p=swftools.git diff --git a/pdf2swf/ttf2pt1/global.h b/pdf2swf/ttf2pt1/global.h new file mode 100644 index 0000000..d8e9b02 --- /dev/null +++ b/pdf2swf/ttf2pt1/global.h @@ -0,0 +1,161 @@ +/* + * see COPYRIGHT + */ + + +/* options */ + +extern int encode; /* encode the resulting file */ +extern int pfbflag; /* produce compressed file */ +extern int wantafm; /* want to see .afm instead of .t1a on stdout */ +extern int correctvsize; /* try to correct the vertical size of characters */ +extern int wantuid; /* user wants UniqueID entry in the font */ +extern int allglyphs; /* convert all glyphs, not only 256 of them */ +extern int warnlevel; /* the level of permitted warnings */ +extern int forcemap; /* do mapping even on non-Unicode fonts */ +/* options - maximal limits */ +extern int max_stemdepth; /* maximal depth of stem stack in interpreter */ +/* options - debugging */ +extern int absolute; /* print out in absolute values */ +extern int reverse; /* reverse font to Type1 path directions */ +/* options - suboptions of Outline Processing */ +extern int optimize; /* enables space optimization */ +extern int smooth; /* enable smoothing of outlines */ +extern int transform; /* enables transformation to 1000x1000 matrix */ +extern int hints; /* enables autogeneration of hints */ +extern int subhints; /* enables autogeneration of substituted hints */ +extern int trybold; /* try to guess whether the font is bold */ +extern int correctwidth; /* try to correct the character width */ + +/* not quite options to select a particular source encoding */ +extern int force_pid; /* specific platform id */ +extern int force_eid; /* specific encoding id */ + +/* other globals */ +extern FILE *pfa_file, *afm_file; +extern int numglyphs; + +/* warnings */ + +#define WARNING_1 if(warnlevel >= 1) +#define WARNING_2 if(warnlevel >= 2) +#define WARNING_3 if(warnlevel >= 3) +#define WARNING_4 if(warnlevel >= 4) + +/* + * Bitmap control macros + */ + +#define BITMAP_BYTES(size) (((size)+7)>>3) +#define DEF_BITMAP(name, size) unsigned char name[BITMAP_BYTES(size)] +#define SET_BITMAP(name, bit) ( name[(bit)>>3] |= (1<<((bit)&7)) ) +#define CLR_BITMAP(name, bit) ( name[(bit)>>3] &= ~(1<<((bit)&7)) ) +#define IS_BITMAP(name, bit) ( name[(bit)>>3] & (1<<((bit)&7)) ) + +/* debugging */ + +/* debug flags */ +#define DEBUG_UNICODE 0x00000001 /* unicode to 8-bit code conversion */ +#define DEBUG_MAINSTEMS 0x00000002 /* glyph-wide main stem generation */ +#define DEBUG_SUBSTEMS 0x00000004 /* substituted stem generation */ +#define DEBUG_STEMS (DEBUG_MAINSTEMS|DEBUG_SUBSTEMS) +#define DEBUG_REVERSAL 0x00000008 /* reversal of the paths */ +#define DEBUG_FIXCVDIR 0x00000010 /* fixcvdir() */ +#define DEBUG_STEMOVERLAP 0x00000020 /* stemoverlap() */ +#define DEBUG_BLUESTEMS 0x00000040 /* markbluestems() */ +#define DEBUG_STRAIGHTEN 0x00000080 /* markbluestems() */ +#define DEBUG_EXTMAP 0x00000100 /* parsing of external map */ +#define DEBUG_TOINT 0x00000200 /* conversion of path to integer */ +#define DEBUG_BUILDG 0x00000400 /* building of glyph path */ +#define DEBUG_QUAD 0x00000800 /* splitting curves by quadrants */ +#define DEBUG_SQEQ 0x00001000 /* square equation solver */ +#define DEBUG_COMPOSITE 0x00002000 /* handling of composite glyphs */ +#define DEBUG_FCONCISE 0x00004000 /* normalization of curves */ +#define DEBUG_FT 0x00008000 /* FreeType front-end */ +#define DEBUG_DISABLED 0x80000000 /* special flag: temporary disable debugging */ + +/* at what we want to look now */ +#ifndef DEBUG +# define DEBUG (0) +#endif + +/* uncomment the next line if debugging data is wanted for one glyph only */ +/* #define DBG_GLYPH "_517" /* */ + +#if DEBUG==0 +# define ISDBG(name) (0) +# define ENABLEDBG(condition) (0) +# define DISABLEDBG(condition) (0) +#else + extern int debug; /* collection of the flags */ +/* this ISDBG will only work on ANSI C, not K&R */ +# define ISDBG(name) ( (debug & DEBUG_DISABLED) ? 0 : (debug & (DEBUG_##name)) ) +# define ENABLEDBG(condition) ( (condition) ? (debug&=~DEBUG_DISABLED) : 0 ) +# define DISABLEDBG(condition) ( (condition) ? (debug|=DEBUG_DISABLED) : 0 ) +#endif + +#ifdef DBG_GLYPH +# define DBG_TO_GLYPH(g) DISABLEDBG( strcmp( (g)->name, DBG_GLYPH ) ) +# define DBG_FROM_GLYPH(g) ENABLEDBG(1) +#else +# define DBG_TO_GLYPH(g) (0) +# define DBG_FROM_GLYPH(g) (0) +#endif + +/* prototypes */ +int iscale( int val); +double fscale( double val); +int unicode_rev_lookup( int unival); + +/* global metrics for a font */ + +struct font_metrics { + /* post */ + double italic_angle; + short underline_position; + short underline_thickness; + short is_fixed_pitch; + + /* hhea */ + short ascender; + short descender; + + /* head */ + unsigned short units_per_em; + short bbox[4]; + + /* name */ + char *name_copyright; + char *name_family; + char *name_style; + char *name_full; + char *name_version; + char *name_ps; + + /* other */ + int force_bold; +}; + +/* size of the encoding table - glyphs beyond 255 are actually unnumbered */ + +#define ENCTABSZ 1024 + +/* switch table structure for front-ends */ + +#define MAXSUFFIX 10 + +struct frontsw { + char *name; /* name of the front end */ + char *descr; /* description of the front end */ + char *suffix[MAXSUFFIX]; /* possible file name suffixes */ + + void (*open)(char *fname, char *arg); /* open font file */ + void (*close)(void); /* close font file */ + int (*nglyphs)(void); /* get the number of glyphs */ + int (*glnames)(GLYPH *glyphs); /* get the names of glyphs */ + void (*glmetrics)(GLYPH *glyphs); /* get the metrics of glyphs */ + int (*glenc)(GLYPH *glyphs, int *enc, int *unimap); /* get the encoding */ + void (*fnmetrics)(struct font_metrics *fm); /* get the font metrics */ + void (*glpath)(int glyphno, GLYPH *glyphs); /* get the glyph path */ + void (*kerning)(GLYPH *glyph_list); /* extract the kerning data */ +};