>FRACTBITS)
/* A fractional point */
typedef struct {
T1_int32 x;
T1_int32 y;
} T1_PATHPOINT;
/* A straight outline segment, stroked or not stroked */
typedef struct pathsegment {
char type; /* type of segment (line or move) */
unsigned char flag; /* type1 rasterizer internal stuff */
short references; /* type1 rasterizer internal stuff */
unsigned char size; /* size of the structure */
unsigned char context; /* index to device context */
struct pathsegment *link; /* pointer to next structure in linked list */
struct pathsegment *last; /* pointer to last structure in list */
T1_PATHPOINT dest; /* relative ending location of path segment */
} T1_PATHSEGMENT;
/* A third order bezier segment */
typedef struct bezierpathsegment {
char type; /* type of segment (bezier) */
unsigned char flag; /* type1 rasterizer internal stuff */
short references; /* type1 rasterizer internal stuff */
unsigned char size; /* as with any 'segment' type */
unsigned char context; /* as with any 'segment' type */
T1_PATHSEGMENT *link; /* as with any 'segment' type */
T1_PATHSEGMENT *last; /* as with any 'segment' type */
T1_PATHPOINT dest; /* ending point (D) */
T1_PATHPOINT B; /* control point B */
T1_PATHPOINT C; /* control point C */
} T1_BEZIERSEGMENT;
typedef T1_PATHSEGMENT T1_OUTLINE;
#define T1_PATHTYPE_LINE 0x10
#define T1_PATHTYPE_BEZIER 0x12
#define T1_PATHTYPE_MOVE 0x15
/* Definitions for font subsetting */
#define T1_SUBSET_DEFAULT 0x00
#define T1_SUBSET_FORCE_REENCODE 0x01
#define T1_SUBSET_SKIP_REENCODE 0x02
#define T1_SUBSET_ENCRYPT_BINARY 0x04
/* This is only for debugging, it does not produce valid font-files!
This flag is not in the documented API!. */
#define T1_SUBSET_ENCRYPT_NONE 0x08
/* Two structures for handling composite character data */
/* One structure for each symbol of the composite character */
typedef struct
{
int piece; /* the index of the current symbol */
int deltax; /* horizontal displacement of current symbol in CS */
int deltay; /* vertical displacement of current symbol in CS */
} T1_COMP_PIECE;
/* This one defines the composite character, the number of pieces and how to
access their data. */
typedef struct
{
int compchar; /* the base character in the current encoding */
int numPieces; /* the number of defined pieces including the base char */
T1_COMP_PIECE *pieces; /* a pointer to the pieces' information */
} T1_COMP_CHAR_INFO;
/* function declarations: */
/* from t1base.c */
extern void *T1_InitLib( int log);
extern int T1_CloseLib( void);
extern int T1_AddFont( char *fontfilename);
extern void T1_PrintLog( char *func_ident, char *msg_txt, int level, ...);
extern void T1_SetLogLevel( int level);
extern int T1_CheckForInit(void);
extern int T1_CheckForFontID( int FontID);
extern char *T1_GetFontFileName( int FontID);
extern int T1_GetNoFonts(void);
extern int T1_SetDeviceResolutions( float x_res, float y_res);
extern int T1_CopyFont( int FontID);
extern int T1_QueryX11Support( void);
extern int T1_CheckEndian(void);
extern int T1_SetBitmapPad( int pad);
extern int T1_GetBitmapPad( void);
extern char *T1_GetLibIdent( void);
extern void T1_SetRasterFlags( int flags);
extern char *T1_GetAfmFileName( int FontID);
extern int T1_SetAfmFileName( int FontId, char *afm_name);
extern char *T1_GetFontFilePath( int FontID);
extern char *T1_GetAfmFilePath( int FontID);
extern const char *T1_StrError( int t1err);
/* from t1delete.c */
extern int T1_DeleteSize( int FontID, float size);
extern int T1_DeleteAllSizes( int FontID);
extern int T1_FreeGlyph( GLYPH *glyph);
extern int T1_FreeCompCharData( T1_COMP_CHAR_INFO *cci);
extern int T1_DeleteFont( int FontID);
/* from t1enc.c */
extern char **T1_LoadEncoding( char *FileName);
extern int T1_DeleteEncoding( char **encoding);
extern int T1_ReencodeFont( int FontID, char **Encoding);
extern int T1_SetDefaultEncoding( char **encoding);
extern char *T1_GetEncodingScheme( int FontID);
/* from t1env.c */
extern int T1_SetFileSearchPath( int type, char *pathname);
extern int T1_AddToFileSearchPath( int pathtype, int mode, char *pathname);
extern char *T1_GetFileSearchPath( int type);
extern int T1_SetFontDataBase( char *filename);
extern int T1_AddFontDataBase( int mode, char *filename);
/* from t1finfo.c */
extern int T1_GetKerning( int FontID, char char1,
char char2);
extern int T1_GetCharWidth( int FontID, char char1);
extern BBox T1_GetCharBBox( int FontID, char char1);
extern float T1_GetUnderlinePosition( int FontID);
extern float T1_GetUnderlineThickness( int FontID);
extern float T1_GetItalicAngle( int FontID);
extern int T1_GetIsFixedPitch( int FontID);
extern char *T1_GetFontName( int FontID);
extern char *T1_GetFullName( int FontID);
extern char *T1_GetFamilyName( int FontID);
extern char *T1_GetWeight( int FontID);
extern char *T1_GetVersion( int FontID);
extern char *T1_GetNotice( int FontID);
extern char *T1_GetCharName( int FontID, char char1);
extern int T1_QueryLigs( int FontID,
char char1,
char **successors,
char **ligatures);
extern int T1_GetEncodingIndex( int FontID, char *char1);
extern int *T1_GetEncodingIndices( int FontID, char *char1);
extern int T1_GetStringWidth( int FontID, char *string,
int len, long spaceoff, int kerning);
extern BBox T1_GetStringBBox( int FontID, char *string,
int len, long spaceoff, int kerning);
extern METRICSINFO T1_GetMetricsInfo( int FontID, char *string,
int len, long spaceoff, int kerning);
extern BBox T1_GetFontBBox( int FontID);
extern char **T1_GetAllCharNames( int FontID);
extern int T1_GetNoKernPairs( int FontID);
extern int T1_GetNoCompositeChars( int FontID);
extern int T1_QueryCompositeChar( int FontID, char char1);
extern T1_COMP_CHAR_INFO *T1_GetCompCharData( int FontID, char char1);
extern T1_COMP_CHAR_INFO *T1_GetCompCharDataByIndex( int FontID, int index);
extern int T1_IsInternalChar( int FontID, char char1);
/* from t1load.c */
extern int T1_LoadFont( int FontID);
extern void *T1_QueryFontSize( int FontID, float size, int aa);
/* from t1set.c */
extern GLYPH *T1_SetChar( int FontID, char charcode,
float size, T1_TMATRIX *transform);
extern GLYPH *T1_SetString( int FontID, char *string, int len,
long spaceoff, int modflag,
float size, T1_TMATRIX *transform);
extern GLYPH* T1_SetRect( int FontID, float size,
float width, float height,
T1_TMATRIX *transform);
extern GLYPH *T1_CopyGlyph(GLYPH *glyph);
extern void T1_DumpGlyph( GLYPH *glyph);
extern GLYPH *T1_ConcatGlyphs( GLYPH *glyph1, GLYPH *glyph2,
int x_off, int y_off, int modflag);
extern void T1_DumpPixmap( GLYPH *glyph);
extern GLYPH *T1_FillOutline( T1_OUTLINE *path, int modflag);
/* from t1trans.c */
extern int T1_ExtendFont( int FontID, double extend);
extern int T1_SlantFont( int FontID, double slant);
extern int T1_TransformFont( int FontID, T1_TMATRIX *matrix);
extern double T1_GetExtend( int FontID);
extern double T1_GetSlant( int FontID);
extern T1_TMATRIX T1_GetTransform( int FontID);
extern int T1_SetLinePosition( int FontID, int linetype, float value);
extern int T1_SetLineThickness( int FontID, int linetype, float value);
extern float T1_GetLinePosition( int FontID, int linetype);
extern float T1_GetLineThickness( int FontID, int linetype);
extern T1_TMATRIX *T1_RotateMatrix( T1_TMATRIX *matrix, double angle);
extern T1_TMATRIX *T1_MirrorHMatrix( T1_TMATRIX *matrix);
extern T1_TMATRIX *T1_MirrorVMatrix( T1_TMATRIX *matrix);
extern T1_TMATRIX *T1_ShearHMatrix( T1_TMATRIX *matrix, double shear);
extern T1_TMATRIX *T1_ShearVMatrix( T1_TMATRIX *matrix, double shear);
extern T1_TMATRIX *T1_ExtendHMatrix( T1_TMATRIX *matrix, double extent);
extern T1_TMATRIX *T1_ExtendVMatrix( T1_TMATRIX *matrix, double extent);
extern T1_TMATRIX *T1_TransformMatrix( T1_TMATRIX *matrix,
double cxx, double cyx,
double cxy, double cyy);
extern int T1_StrokeFont( int FontID, int dostroke);
extern int T1_SetStrokeFlag( int FontID);
extern int T1_ClearStrokeFlag( int FontID);
extern int T1_GetStrokeMode( int FontID);
extern int T1_SetStrokeWidth( int FontID, float strokewidth);
extern float T1_GetStrokeWidth( int FontID);
/* from t1aaset.c */
extern GLYPH *T1_AASetChar( int FontID, char charcode,
float size, T1_TMATRIX *transform);
extern GLYPH *T1_AASetString( int FontID, char *string, int len,
long spaceoff, int modflag,
float size, T1_TMATRIX *transform);
extern GLYPH* T1_AASetRect( int FontID, float size,
float width, float height,
T1_TMATRIX *transform);
extern int T1_AASetGrayValues(unsigned long white,
unsigned long gray75,
unsigned long gray50,
unsigned long gray25,
unsigned long black);
extern int T1_AAHSetGrayValues( unsigned long *grayvals);
extern int T1_AANSetGrayValues( unsigned long bg, unsigned long fg);
extern int T1_AAGetGrayValues( long *pgrayvals);
extern int T1_AAHGetGrayValues( long *pgrayvals);
extern int T1_AANGetGrayValues( long *pgrayvals);
extern int T1_AASetBitsPerPixel( int bpp);
extern int T1_AAGetBitsPerPixel( void);
extern int T1_AASetLevel( int level);
extern int T1_AAGetLevel( void);
extern GLYPH *T1_AAFillOutline( T1_OUTLINE *path, int modflag);
extern int T1_AASetSmartLimits( float limit1, float limit2);
extern int T1_AASetSmartMode( int smart);
/* from t1afmtool.c */
extern int T1_WriteAFMFallbackFile( int FontID);
/* from t1outline.c */
extern T1_OUTLINE *T1_GetCharOutline( int FontID, char charcode,
float size, T1_TMATRIX *transform);
extern T1_OUTLINE *T1_GetStringOutline( int FontID, char *string, int len,
long spaceoff, int modflag,
float size, T1_TMATRIX *transform);
extern T1_OUTLINE *T1_ConcatOutlines( T1_OUTLINE *path1,
T1_OUTLINE *path2);
extern T1_OUTLINE *T1_ScaleOutline( T1_OUTLINE *path, float scale);
extern T1_OUTLINE *T1_GetMoveOutline( int FontID, int deltax, int deltay, int modflag,
float size, T1_TMATRIX *transform);
extern void T1_DumpPath( T1_OUTLINE *path);
extern void T1_AbsolutePath( T1_OUTLINE *rpath);
extern void T1_RelativePath( T1_OUTLINE *apath);
extern void T1_ManipulatePath( T1_OUTLINE *path,
void (*manipulate)(long *x,long *y,int type));
extern T1_OUTLINE *T1_CopyOutline( T1_OUTLINE *path);
extern void T1_FreeOutline( T1_OUTLINE *path);
/* from t1subset.c */
extern char *T1_SubsetFont( int FontID,
char *mask,
unsigned int flags,
int linewidth,
unsigned long maxblocksize,
unsigned long *bufsize);
extern char *T1_GetCharString( int FontID, char *charname, int *len);
extern int T1_GetlenIV( int FontID);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif /* T1LIB_H_INCLUDED */