[cc'ing the list since i think it's relevant] On Fri, Oct 06, 2006 at 04:55:51PM -0400, Daniel Glassey wrote: > btw there is discussion about trying to integrate as much as possible on > http://live.gnome.org/UnifiedTextLayoutEngine that you might like to > contribute to.
well sadly i think the only thing i could contribute to this is detracting from it. i'm strongly against pushing common apis. what needs to happen in this area is not for everyone to agree on a single codebase to use (which will invariably be ill-suited to many people's needs), but instead to move the topic of layout _out_ of the code and into data or standards -- either new tables in fonts or generic tables that apply to all fonts, much like the unicode tables are generic. then, everyone can use whatever implementation (choice of language, etc.) suits them while still agreeing on a common expected behavior. but whatever is standardized _must_ always be behavior. not code. a single codebase, free/libre or not, is not a standard but an implementation! graphite might be the solution we're looking for, or it might be ridiculously overcomplex and bloated. i'd need to research it more to have an opinion but i'm quite interested in it. basically it's like a much more powerful version of what i did with ucf (whereas ucf is extremely simple because the task it needs to accomplish is simple). one thing i'm sure of though, from working on uuterm and ucf: there are two _very_ different issues people are trying to solve, and i think many of the people working on them don't understand the difference. "complex" stacking of diacritic marks is absolutely not a layout issue. the solution can be fully specified in terms of simple substitution tables, or substitution+positioning. ligatures can also be entirely handled in this way -- even the notoriously-"complex" indic scripts. i find it appalling that most apps don't support these correctly and then claim it's because of complex layout issues. part of my intent in the experiment of uuterm is demonstrating that combining stacks, shaping, and ligatures are not a complex layout issue. rendering bidi text, diagonal urdu, mixed horizontal and vertical text flows, etc. is complex (and except for bidi these things probably only belong in word processing, desktop publishing, web browsers, etc. -- not your average plaintext textbox). on the other hand getting combining stacks and ligatures right is _not_ complex. having done it in less than 100 lines of c, i can now say this with confidence... rich -- Linux-UTF8: i18n of Linux on all levels Archive: http://mail.nl.linux.org/linux-utf8/
