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