improvements compared to "src/type1". Briefly :
- the postscript-like interpreter is now gone. We now perform
pattern-matching to load our font content. The resultant code
is much faster, smaller, and easier to maintain.
For a more detailed description, see the comments at the start
of "src/type1z/t1objs.c"
- the glyph loader will be greatly simplified really soon, and the
clumsy hinter will be ditched in favor of a more general auto-hinting
module (when we get one).
The goal is to strip down the Type1 driver to about 15-20 Kb.
This is still an experimental version. It is added to the repository
for archiving. You should not try to use it for now (it won't work
because some crucial parts are _knowingly_ ignored for now !).
Note that the "old" type1 driver will probably move to the "demos/src"
directory, in order to show how one can replace one given font driver
at runtime (and to provide the functionality of the "t1dump" program).
- modified the interface of the "sfnt" module. There is now a function
called "load_format_tag", and another called "load_directory".
The first one is in charge of returning the 4-byte tag located at
the beginning of a given font file. It understand TrueType collections
and parses them automatically
The second loads the table directory that is located just after
the format tag.
This is useful, because the "SFNT" storage scheme can be used by
several distinct formats, each with its own format tag.
The TrueType driver now checks the format tag in "src/truetype/ttobjs.c"
- made some changes to "src/shared/t1types.h" to clearly separate the
Type 1 font content from the rest of the T1_Face structure. This
will be useful when adding the CFF/Type2 driver that will be able
to reuse the "T1_Font" structure within a "TT_Font" one (which
really describes a SFNT-based font file).
Some changes in "src/type1" were thus performed to reflect this.
Note that the current type1 driver will be discontinued in a
distant future. More on this later..
use "$(FT_COMPILE)" instead of "$(FT_CC)" in order to
compile the library.
$(FT_COMPILE) uses the $(ANSI_FLAGS) variable used to
define ANSI-compliance flags for the current compiler. It is used
to compile the library exclusively (some demo programs will _not_
compile properly with these flags set).
(they didn't updated the stream position in the case of
disk-based streams. This went un-noticed under Linux
which uses memory-mapped files by default)
- the graphics drivers were moved from "demos/config/*" to
"demos/graph/*"
- a Win32 graphics driver was added. (note that keyboard
management is a bit buggy, but it's really usable).
- the "demos/Makefile" and "demos/graph/rules.mk" were
seriously modified
- the demo programs now compile AND run with gcc,
Visual C++ and LCC-Win32 !! The other ones should be
really easy to add now, as LCC was the really smart ass
in this list...
- compile the demonstration programs in any directory, by
using the "TOP" and "CONFIG_MK" environment variables
- the graphics drivers have moved from "demos/config/*" to
"demos/graph/*"
- brain-dead compilers like LCC-Win32 required some
changes in the way executables are linked
introduced to use a constant precision and dynamic bezier decomposition
thresholding, leading some performance improvements.
Note that by now, the "high_precision" field of a FT_Outline
is ignored by the raster..
basic i/o access are performed with FreeType 2.
Note that unlike FT 1.x, you don't need to recompile the library if
you want to provide your own memory manager or your own i/o streams.
also, changed all image references to the new PNGs
Note that this document is really out-of-date
(there are no more resources, the stream manager has disappeared,
the build systel was seriously modified, etc..)
Updated all image references to the new PNGs
Note that this document is slightly out-of-date though..
(FT_Raster_Map was changed for FT_Bitmap, and the anti-alias renderer
now supports 128 levels by default).