From: <Sha...@si...> - 2007-07-20 17:09:44
|
Let me try to summarize the conversation I had with Martin on this...hopefully I'll represent his viewpoint accurately. Martin doesn't like the added complexity (and space in the Glat table) that is involved in storing directionality in a font that is fundamentally non-bidirectionality. He was suggesting leaving most glyphs with directionality = 0 for non-bidi fonts, which means the value is just omitted from the font, and then the engine would just supply the text direction in those situations. In my mind it is added complexity (read: kludgy :-) to create special rules, and since most glyphs are going to have at least one glyph attribute anyway (eg, breakweight), the extra space in the font turns out to be negligible. So my inclination is to have the compiler just supply the directionality for all the glyphs. A separate but related issue is that Martin doesn't like the fact the Bidi defaults to true in GDL. He argues that somebody working with a non-bidi scripts shouldn't have to even think about the issue; the only people who should have to think about it are those doing bidi and they are very well aware of it. I see his point, and I supppose it would quickly become obvious to a RTL developer if they left out the "Bidi = true" statement! So, would anyone object to that being changed in the compiler? Sharon Correll/IntlAdmin/WCT wrote on 07/19/2007 03:45:03 PM: > One of the things the compiler does is set the directionality for > each glyph. This is done by first finding the default value based on > the Unicode properties (via ICU) and then using any values spelled > out in the GDL. However, there is a line in the compiler that says > "Don't bother doing this if the font has no Bidi pass." > > This isn't quite adequate. Even for a font that isn't right-to-left > or bidirectional itself, it needs to be able to reorder whitespace > at the end of a line when it is combined with text of a different > script and direction. And Graphite wants to use the directionality > attribute of the space glyphs to do this. > > My inclination is to get rid of the test that says, "Don't do this > if the font has no Bidi pass." That would add a slight bit of time > to the compiler, but who would notice? Really I think the only > difference is that maybe you don't want warnings if there is no Bidi > pass. But now that we're using ICU, it should always be possible to > set the default. > > If we leave it the way it is, a font developer can still make it > work by explicitly putting the directionality codes in the GDL. But > it's easy to forget to do that--like I forgot for our Roman fonts-- > and it really shouldn't be necessary. |