Freetype/2 Font Demo

Summary: A demo of the Freetype/2 fonts, using pre-rendered antialiased Bitstream Vera fonts.
Author: Arjen van Elteren, modified by Ned Konz
Owner: Ned Konz (nk)
Co-maintainers: <None>
PackageInfo name: <Not entered>
RSS feed:


This SAR contains pre-rendered versions of the BitstreamVera family, along
with the FT2Font class and the BitBlt and other changes required to display
these fonts (with or without the enhanced BitBlt plugin, but since I'm the
only one right now with a copy of that plugin that doesn't matter).

It should work in a recent (3.7a) Squeak image; I have only tried it in a 5816

Arjen van Elteren wrote the original plugin and font code; I have modified it
to understand style changes (bold, italic, etc.) and to render properly in
the absence of the enhanced BitBlt modes that were provided by his plugins.

There is also a plugin that speeds up drawing (which works under Linux right
now), and a plugin that interfaces with the Freetype/2 libraries. I will be
putting the code for all of these things on SqueakMap.

I find them quite usable. They don't have the arrows re-mapped; I could do
this easily if there is enough demand (the glyphs are (I believe) in the
original fonts)). I believe that the demo has characters in the Latin1
mapping, rather than MacRoman (I can fix this easily, but wanted to get a
sample out).

Currently, the design of the FT2Font is very similar to the design of the
StrikeFont: the character glyphs (corresponding to characters whose values
are between 0 and 255) are stored in a single Form.

So to use these for extended character sets would require a bit of tinkering.
However, the FT2 library interface is quite capable of working together with
something like TTCFont and producing better antialiased results.

The font interface in Squeak should be unified; there is quite a bit of

The BitBlt changes could also benefit TTCFonts which are rendered in a single
color. Right now we're caching 32-bit forms rendered in a single color. Using
this 8-bit deep encoding would mean that we could save at least 75% of the
memory, and more whenever we're rendering the same glyphs in different

I will be moving Arjen's BitBlt changes out of mode 34 and into a new mode
(38?) soon.

For reference, I'm using the auto-hinting in Freetype/2 (that is, my version
is compiled without the patent-encumbered interpreter).

My current work on this package is in my Monticello repository at: