Henrik antialising

Andrew Tween amtween at hotmail.com
Tue Mar 21 11:24:16 UTC 2006


Hi Stef,
Sorry about that. I'll check my e-mail settings.

Here is an update on the sub-pixel anti-aliasing work I have been doing...

I ported some of Henrik's sub-pixel rendering code to 3.9.
Enough to get the fonts that he had produced to load, and display.
But, since his work was unfinished, there are some things which don't work.
(This is not a criticism of Henrik, the comments in his code indicate that
he was intending to work on these things).
Specifically, from Henrik's project notes...
    "No support for synthetic variants (emboldened, underline etc.), nor
colored type.
     No bg color other than white in paragraphs (but in QuickPrint)
     Doesn't work properly in other than 32 bit display depth (for Squeak)
because of BitBlt limitations. "

The lack of support for coloured text means that it doesn't work with Shout.
I am extremely reluctant to release/support 2 packages that don't work with
each other.

The production of the stretched character glyphs, in Henrik's code, relied
on the Freetype library.
Other people are working on interfacing to Freetype (the Sophie project, for
example), and I don't want to duplicate their efforts by 'doing my own
thing'.

For the reason's above, I have started from a blank sheet, with these goals.
    1. Must work with, or without, Freetype. (i.e. work with exisiting TTF
support)
    2. Must support any foreground/background colour combination (including
Transparency).
    3. Should work with any display depth (or at least with >= 8 bit)
    4. Would be nice to also fix the advance width problem (enable glyphs to
overlap)
    5. Awareness of any patent issues.
        I don't know what we can/should do about those patent issues, but at
least we can make informed decisions.

I have made some progress on this...

    I have created a new BitBlt mode that has a separate alpha channel for
each rgb subcomponent.
        This enables Transparency/Translucency, and means that there is no
need to cache separate glyphs per foreground colour.
        At the moment this only works with 32 bit display depth, and
requires a patched VM.

    I can create stretched glyphs using the existing Balloon /TTF rendering.
        These are still blurry (mainly in the vertical direction. This is
due to no hinting/grid fitting).
        It is also very slow - I haven't improved the TTCFont caching, so
the caches keep getting rebuilt.

    I can fake the Freetype support by using Windows API to create
stretched/hinted/grid fitted glyphs.
        This works well, text is very clear, but there are issues with some
italic glyphs becoming distorted.
        I think this is a bug in the Windows API.

   I have researched the patents that apply in this area.
        So far I have uncovered 16 US, and 1 worldwide patent held/applied
for by Microsoft.

So, work is progressing, as time allows, but time is in short supply at the
moment.

I am deliberately hesitating before sharing any of this stuff, mainly
because of the patent issues,
but also because I want to get it working with Freetype first.

More later...
Cheers,
Andy

----- Original Message ----- 
From: "stéphane ducasse" <ducasse at iam.unibe.ch>
To: "The general-purpose Squeak developers list"
<squeak-dev at lists.squeakfoundation.org>
Sent: Tuesday, March 21, 2006 7:43 AM
Subject: Henrik antialising


> Hi guys
>
> did one of you hear about andy tween the cool father of SHOUT.
> Way back he said that he was willing to harvest Henrik antialiasing
> font rendering.
> I tried to contact him but got no reply (may be a spam filter problem).
>
> Stef
>
>



More information about the Squeak-dev mailing list