[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Status report on FreeType 2
Status report on FreeType 2
Wed, 03 May 2000 12:18:21 +0200
As usual, I'm sorry for having been silent these last weeks, I've
been busy hacking many things related to FreeType 2, even if most
of them will not appear immediately in the CVS repository.
Anyway, here's a short status report. I maintain a release date
around the end of May, by the way.. :o)
I. WHAT HAS BEEN DONE LATELY ON FREETYPE 2:
- the smooth renderer has been moved to "src/base/ftgrays.c" and
is now part of the core library. see also "include/ftgrays.h"
- it is now possible to access some TrueType tables like
"head", "OS/2", "maxp", "hhea", etc... See "include/tttables.h"
to see how to do it
- some important internal changes that will be used in order to
support additional font drivers and features (e.g. multiple master
- a first draft API for the auto-hinting module. I'm still looking
for something more general however, that could allow us to plug
other auto-hinters later, like one inspired by the John Hobby
- added a configuration macro named FT_CONFIG_OPTION_OLD_CALCS to
perform exactly the same computations than FT 1.x for TrueType
bytecode interpretation. This was needed to get rid of rendering
differences at small size on some glyphs..
- researched a serious bug in the monochrome renderer "ftraster".
The bug was found, and a solution is in the way. Note that
"ftraster" is being rewritten in order to only support monochrome
rendering and 5-gray-levels anti-aliasing (backwards compatibility).
The "standard anti-aliaser", with all its artefacts, is dropped.
- some fixes to the build system (e.g. "ftglyph.o" was not correctly
added to the library file)
- completion of the auto-hinter outline optimisation phase :o)
- there is some experimental Autoconf/Automake support in the build
system that was added recently. It isn't invoked by the build system
directly for now, but will be later used to compile/link the engine
for the 2.0 release.
- note that the Tutorial is now obsolete. However, I won't update
it before having a completely stable API.
II. PLANNED WORK FOR THE NEXT TWO WEEKS:
* The Auto-Hinter:
I now consider the auto-hinter basically finished. Even though
there are still more tweaks to perform to improve the quality
of glyphs (especially asian ones), its design and architecture
There is a draft API for a auto-hinting module that could be used
by font drivers, however, I'm still looking for something a bit more
generic in order to plug other auto-hinters (like one based on the
John D. Hobby paper, that seem to sacrifice performance for quality).
* Scan-line converters:
"src/base/ftraster.c" will be replaced shortly by a new version that
only supports monochrome rendering and 5-gray-levels anti-aliasing.
This is important for backwards compatibility. This new version will
most probably support direct rendering though.
Advanded anti-aliasing is already possible through the smooth renderer
found in "src/base/ftgrays.c"
* Additional Font Drivers:
I have started on implementing seriously support for the following font
- Multiple Master Type 1 fonts
- CID Type 1 fonts
- CFF/Type2 fonts
Note that CID fonts will be supported through a stand-alone driver, whose
code will be based on the current "type1z" (it will also support reading
CMaps). Meanwhile, MM T1 fonts will be supported through an updated
version of "type1z". This, in order to reduce the complexity of both
The CFF/Type2 driver will probably only support OpenType fonts. I have
no example of a standalone CFF font, so don't expect a driver for them.
* OpenType Layout:
I don't think that the "OpenType Layout" module will make it for the
FreeType 2 release, due to lack of time. However, it will be added as
soon as possible after this release.
I have some experimental code for the following features, however they
are not to be completely debugged (sometimes crash), and I'm unsure they'll
be part of the release. These are:
- BDF + PCF font drivers
- simple glyph cache
- outlining + emboldening algorithms
(well a bare approximation that works most of the time)
I also have some old code for a "Text Service" on top of FreeType 2, but
it hasn't been updated from months. I'll probably update it after the
Hopefully, there will be a few more important goodies in a month.
Unfortunately, I cannot officialy tell about them.. In the meantime,
I appreciate any comment before the FreeType 2 API is frozen :-)
It's now time for me to answer some of those e-mails I've received lately ;-)
- Status report on FreeType 2,
David Turner <=