windows-nt/Source/XPSP1/NT/shell/osshell/fontfldr/fontext/t1instal/t1parser.h
2020-09-26 16:20:57 +08:00

131 lines
3.6 KiB
C

/***
**
** Module: T1Parser
**
** Description:
** This is a module of the T1 to TT font converter. The module
** will extract information from a T1 font file, by parsing
** the data/commands found in PFB, PFM and AFM files.
**
** Author: Michael Jansson
**
** Created: 5/26/93
**
***/
#ifndef _ARGS
# define IN const
# define OUT
# define INOUT
# define _ARGS(arg) arg
#endif
struct T1Arg;
struct T1Info;
struct T1Glyph;
struct T1Handle;
struct T1Metrics;
struct Composite;
struct GlyphFilter;
/***
** Function: InitT1Input
**
** Description:
** Allocate and initiate a handle for a T1 font file, including
** extracting data from the font prolog that is needed to
** read the glyphs, such as /FontMatrix, /Subrs and /lenIV.
***/
errcode InitT1Input _ARGS((IN struct T1Arg *,
OUT struct T1Handle **,
OUT struct T1Metrics **,
IN short (*cb)(IN char *,
IN char *,
IN char *)));
/***
** Function: CleanUpT1
**
** Description:
** Free the resources allocated for the T1 handle.
***/
errcode CleanUpT1 _ARGS((INOUT struct T1Handle *));
/***
** Function: ReadOtherMetrics
**
** Description:
** Return font level information about the T1 font (mostly
** metrics).
***/
errcode ReadOtherMetrics _ARGS((INOUT struct T1Metrics *,
IN char *metrics));
/***
** Function: GetT1Glyph
**
** Description:
** The current file position of the T1 font file must be
** at the begining of an entry in the /CharStrings dictionary.
** The function will decode the font commands, parse them, and
** finally build a representation of the glyph.
***/
errcode GetT1Glyph _ARGS((INOUT struct T1Handle *,
OUT struct T1Glyph *,
IN struct GlyphFilter *));
/***
** Function: FreeT1Glyph
**
** Description:
** This function frees the memory used to represent
** a glyph that has been translated.
***/
void FreeT1Glyph _ARGS((INOUT struct T1Glyph *));
/***
** Function: GetT1Composite
**
** Description:
** This function unlinks the first composite glyph
** from the list of recorded composite glyphs, which
** is returned to the caller.
***/
struct Composite *GetT1Composite _ARGS((INOUT struct T1Handle *));
/***
** Function: GetT1AccentGlyph
**
** Description:
** This function parses the charstring code associated to the
** accent character of a composite character, if that glyph
** is not already converted.
***/
errcode GetT1AccentGlyph _ARGS((INOUT struct T1Handle *,
IN struct Composite *,
OUT struct T1Glyph *));
/***
** Function: GetT1BaseGlyph
**
** Description:
** This function parses the charstring code associated to the
** base character of a composite character, if that glyph
** is not already converted.
***/
errcode GetT1BaseGlyph _ARGS((INOUT struct T1Handle *,
IN struct Composite *,
OUT struct T1Glyph *));
/***
** Function: FlushWorkspace
**
** Description:
** Free the resources allocated for the T1 handle.
***/
void FlushWorkspace _ARGS((INOUT struct T1Handle *t1));