Tuesday, October 23, 2007

Options for Text Processing

Prerequisite Knowledge:
ATSUI - Apple Type Services for Unicode Imaging.

Gecko 1.8 (used in ff2) uses Quickdraw for all it's text rendering needs.

Quickdraw is now deprecated.

Gecko 1.9 uses Cairo for it's text rendering needs... Cairo uses Quartz to draw, and has ATSUI to run/store all the measurements. Gecko itself uses ATSUI to store font information.

I hear rumours that CoreText will replace ATSUI in leopard, thus making ATSUI deprecated (or soon to be deprecated).


So the question is, what road should I take towards fixing the problem that:
"when a css style demands italic/bold etc. and no predefined font exists (thus we need to take an existing 'normal' font and make it italic/bold) the browser doesn't render the style properly"

Option 1: Fake it, synthesize the style.
Option 2: See if Quickdraw can be used for mac os <>= 10.5
Fix up cairo to do this (gulp! thats a lot of work)
Option 3: Work with Cairo so that it draws with ATSUI rather than quartz. From documentation I have read, ATSUI can play with quartz (performance issues?). Cairo already keeps the font information in ATSUI... so i expect that the difficulty will be < option 2.

Here is a comment inside the cairo of gecko 1.8 (gecko didn't use cairo... but I guess it included it for some reason)
// TODO - bold and italic text
// We could draw the text using ATSUI and get bold, italics
// etc. for free, but ATSUI does a lot of text layout work
// that we don't really need...

No comments: