[interfacekit] Re: Font Face Remapping

> Perhaps we should postpone the substitution stuff a bit - since it's 
> not urgently needed in R1.
> To make it look good, one would have to analyze the font properties a 
> bit. Also, some fonts just can't be converted algorithmically - like 
> an 
> italic script font; how to make this one "plain"?
Perhaps I wasn't very clear. I'm like that quite a bit of the time. I 
don't plan on doing anything which requires too much effort, like 
taking an italics font and doing transforms to turn it into a plain 
one. That kind of thing would take a lot of work. What is going to be 
done is that if there is only one style and the one that exists isn't 
the one requested, the face request will return an error and choose the 
only style available. Things similar to that will happen without going 
into a lot of detail here. When a plain font exists and the italics 
face is requested, it will return an error BUT will also set the font 
to one with low-grade italicization in place. It's an attempt to 
gracefully account for errors. If nothing can be done in some cases 
without a lot of extra work, nothing will be done except return an 
error.

The effects I will be putting into place are ones which won't require 
much, if any, analysis. Underlining is just simply placing an extra 
line a few pixels below the baseline for the font. Strike-through is 
the same way, but a little higher. FreeType2 does the work for us when 
we want just the characters' outlines. The low-grade italicization is 
done by playing around with the shear transform which is already in 
place alongside the rotation transform. To be perfectly honest, the 
font code needs to be expanded quite a bit because all it really does 
right now is draw strings. There's a lot of other stuff that needs done 
to get things where they need to be. Adi, Gabe, and I have a ton of 
work to do, and I don't exactly want to add to that unless there's a 
lot of really good things that can go with it.

--DW

Other related posts: