True Type Instructions

Boris Gaertner Boris.Gaertner at gmx.net
Tue May 16 19:39:56 UTC 2006


"Noname Myname" <gcdart_squeak at rediffmail.com> wrote:


> One more Question , shud the true type instructions in the
> Open Type files definitely be executed ?

> Or are they supported currently in SQUEAK ?
> Well if they are ... then wud'nt
> the display of characters be terribly slow ?
Squeak does not execute glyph instructions (hints).
Most TTF fonts can be used without hinting. The well-known
exception is MingLiU, a font for chinese. The glyphs of that
font are defined as glyph instructions that assemble collections
of strokes into hanzi ideographs. To render such these glyphs,
you have to execute the glyph instructions. But I think MingLiU
is a rare exception in the universe of True Type Fonts.

> Becuz you have to create an intrepreter inside another
> interpreter("SQUEAK")
> to understand the instructions and execute them.
I think it would be doable to write an interpreter for glyph
instructions, but it would be difficult - if not impossible - to
incorporate it into an open software project like Squeak.
You have to bear in mind that some aspects of glyph hinting
are protected by patents (hold by Apple). It is therefore not
possible to freely distribute a complete implementation of
glyph hinting. There is a well-known work-around: FreeType.
The late Henrik Gedenryd has done some impressive work
in this direction, but at this moment I feel unable to explain you
details about that admireable work.

> how does SQUEAK Handle the text display so efficiently or
> am i missing something very basic .... ?
Keep in mind that you do not have to render a glyph every time
you display it. You do it once for a selected fontsize and you
render only needed glyphs. Once a glyph is rendered, it will
be cached in the font instance. This is implemented in TTCFont.
Glyph rendering itself  is implemented in
TTGlyph>>asFormWithScale:ascender:descender:fgColor:bgColor:depth:


Hope this helps.





More information about the Squeak-dev mailing list