Subject: OpenType (was Re: Yiddish in Abi?)
From: Tomas Frydrych (tomas@frydrych.uklinux.net)
Date: Fri Jun 29 2001 - 17:08:30 CDT
> Andrew:
> Bidi isn't really ready for prime time on Windows. Windows uses all
> kinds of funky OpenType magic to render nice Arabic script but AbiWord
> is not doing all it can with font metrics.
I think if we are serious about AW being multilingual, we need to
consider OpenType; there are parts of Unicode that implicitely rely
on the capabilities of OpenType and cannot be implemented with
older font technologies.
I recall that Leonard suggested repeatedly in the past that we
consider using the FreeType rasteriser in AW, and I am more and
more inclined to think that he is right about that, and that by relying
on the rasterisers provided by the OS's (with their varied
capabilities), we are giving ourselves lot of trouble.
> There are some strange results. Most noticeable
> (for me) is when selecting text. The block shown as selected is
> usually greater than that portion of text is rendered. The
unselected
> portion is rendered to the right of the selected block. The same
> occurs for Thai and Idic scripts. And I don't think that's all ):
The developers who initially wrote the code for calculating widths of
strings assumed that all characters have positive width, i.e., no
combining characters. To be fair to them, I think X has no means of
coping with overstriking characters at all. The problem in handling
these is that under X AW has to know that even though the
character is reported as having a positive width, it is really
overstriking and draw it in correct place (the mechanism for that is
in place in the Unix bidi build, but the list of chars in
ut_OverstrikingChars.cpp needs to be expanded); in contrast,
under Windows this is taken care of by the font renderer, so that
the text is drawn correctly; at the same time Win AW uses its own
code to calculate the width of such a string counting each
overstriking char as having a positive width, so that the width of the
selection is greater than it should be.
What we have at the moment is platform-depenent mess. If we
were using our own renderer, it would become a straighforward
cross-platform issue.
Tomas
This archive was generated by hypermail 2b25 : Fri Jun 29 2001 - 17:11:44 CDT