[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Freetype] Native Type 1 and CFF hints [was: Auto-hinter improvemen
Re: [Freetype] Native Type 1 and CFF hints [was: Auto-hinter improvements]
Wed, 16 May 2001 11:20:06 +0200
Tom Kacvinsky a écrit :
> Hi David,
> May I ask how you will be implementing native Type 1 and CFF hints?
Yes of course :-)
The idea is to design two modules, instead of one, in order to implement
automatic and native hinting.
- The first module, let's called it the "hinter", analyses
a font and glyph outlines in order to detect features like
stems, serifs, etc..
It then produces a table of data that is associated to the
current glyph slot. These are really "hints", though the
format used to store them is really different from the one
defined in the T1 spec.
- the second module, let's called it the "fitter", will parse
the table of hints and align glyph outlines accordingly,
trying to preserve stem widths, counters, etc..
The TrueType driver will use both modules as you can probably
Meanwhile, the T1/CID/CFF modules will need to convert the
native font hints into the "appropriate" format, and send them
to the "fitter" module.
Of course, it's just a broad overview of how it's working.
I didn't speak about global or family hints, for example..
Also, in the new scheme, each font driver will be responsible
for calling the "hinter" and/or "fitter" modules (in the
current design, the auto-hinter by-passes them automatically,
but this introduces complexity, and creates problems with
embedded bitmaps for example).
My most interesting and challenging problem is currently to
design a "hint format" that suits both the output of the
"hinter" module and the native T1/CID/CFF ones. They're
pretty difficult to match, indeed.
I wouldn't be surprised if I preliminarily released T1/CID/CFF
drivers that use both modules at first (there would be minimal
changes), which means we need really good "hinters" and
(actually, the "hinter" seems pretty good right now, the
"fitter" is still giving strange problems, and I'm
developing a complete "glyph previewer" in order to
better understand what's happening).
Hope this helps,