module.mk |
|
677 |
rules.mk |
|
1861 |
t1afm.c |
The macro FT_COMPONENT is used in trace mode. It is an implicit
parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log
messages during execution.
|
10667 |
t1afm.h |
T1AFM_H_ |
1285 |
t1driver.c |
The macro FT_COMPONENT is used in trace mode. It is an implicit
parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log
messages during execution.
|
23752 |
t1driver.h |
T1DRIVER_H_ |
769 |
t1errors.h |
This file is used to define the Type 1 error enumeration constants.
|
969 |
t1gload.c |
The macro FT_COMPONENT is used in trace mode. It is an implicit
parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log
messages during execution.
|
20367 |
t1gload.h |
T1GLOAD_H_ |
1193 |
t1load.c |
This is the new and improved Type 1 data loader for FreeType 2. The
old loader has several problems: it is slow, complex, difficult to
maintain, and contains incredible hacks to make it accept some
ill-formed Type 1 fonts without hiccup-ing. Moreover, about 5% of
the Type 1 fonts on my machine still aren't loaded correctly by it.
This version is much simpler, much faster and also easier to read and
maintain by a great order of magnitude. The idea behind it is to
_not_ try to read the Type 1 token stream with a state machine (i.e.
a Postscript-like interpreter) but rather to perform simple pattern
matching.
Indeed, nearly all data definitions follow a simple pattern like
... /Field <data> ...
where <data> can be a number, a boolean, a string, or an array of
numbers. There are a few exceptions, namely the encoding, font name,
charstrings, and subrs; they are handled with a special pattern
matching routine.
All other common cases are handled very simply. The matching rules
are defined in the file `t1tokens.h' through the use of several
macros calls PARSE_XXX. This file is included twice here; the first
time to generate parsing callback functions, the second time to
generate a table of keywords (with pointers to the associated
callback functions).
The function `parse_dict' simply scans *linearly* a given dictionary
(either the top-level or private one) and calls the appropriate
callback when it encounters an immediate keyword.
This is by far the fastest way one can find to parse and read all
data.
This led to tremendous code size reduction. Note that later, the
glyph loader will also be _greatly_ simplified, and the automatic
hinter will replace the clumsy `t1hinter'.
|
81820 |
t1load.h |
parser used to read the stream |
3285 |
t1objs.c |
The macro FT_COMPONENT is used in trace mode. It is an implicit
parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log
messages during execution.
|
17541 |
t1objs.h |
The following structures must be defined by the hinter |
3452 |
t1parse.c |
The Type 1 parser is in charge of the following:
- provide an implementation of a growing sequence of objects called
a `T1_Table' (used to build various tables needed by the loader).
- opening .pfb and .pfa files to extract their top-level and private
dictionaries.
- read numbers, arrays & strings from any dictionary.
See `t1load.c' to see how data is loaded from the font file.
|
14896 |
t1parse.h |
@Struct:
T1_ParserRec
@Description:
A PS_ParserRec is an object used to parse a Type 1 fonts very
quickly.
@Fields:
root ::
The root parser.
stream ::
The current input stream.
base_dict ::
A pointer to the top-level dictionary.
base_len ::
The length in bytes of the top dictionary.
private_dict ::
A pointer to the private dictionary.
private_len ::
The length in bytes of the private dictionary.
in_pfb ::
A boolean. Indicates that we are handling a PFB
file.
in_memory ::
A boolean. Indicates a memory-based stream.
single_block ::
A boolean. Indicates that the private dictionary
is stored in lieu of the base dictionary.
|
3735 |
t1tokens.h |
we use pointers to detect modifications made by synthetic fonts |
5083 |
type1.c |
END |
720 |