We went into technical discussion three times.
First the night before conference starting. As I said before, I told him how Arabic rendering is pretty slow in Pango, which we both agreed that it's a problem in Pango's OpenType handling. Two days later, he told me that he did some optimizations last night, caching some values when handling OpenType features, which made Arabic rendering faster! Before the patch Arabic was taking 2.2 times slower than English, after the patch it's just 1.8 times. Pretty good. [Update: he applied the patch on July 26. From the ChangeLog:]
Mon Jul 26 14:49:22 2004 Owen Taylor
* ftxgdef.[ch] otlbuffer.[ch]: Make Check_Property() take a
OTL_GlyphItem, add a gproperties field to OTLGlyphItem,
and use that to cache the properties for a glyph.
* ftxgsub.c ftxgdef.c: Adapt to Check_Property() changes.
* otlbuffer.[ch] ftxgsub.c: Add otl_buffer_copy_output_glyph()
to use when we are copying an unmodified glyph from input
to output that preserves the cached properties.
Isn't that cool? [Update: The patch had a bug. Just fixed it now after a long hacking session.]
Second time was at lunch on the second (last) day of the conference. I asked all kind of questions. Mainly talked about different features that I like to see in Glib, like complete Unicode Character Database
, or loose searching, or new Unicode Technical Reports
. What I found out was that Owen is not interested in more functionality and features at all; he needs enough evidence that a feature is really useful in real life before he decides to put it in. That's a good characteristic of a good maintainer. So, Unicode Character Database goes into a separate library. I'll post later about the details. Stay tuned.
Third and last was at the pub the night that conference finished. I asked all kind of questions again, about justification, paragraph direction code and keyboard layout direction, enclosing marks, font selection for neutrals, many many other things. I can't just dump what I said and heard. I will implement them step by step... For the first step, I'm going to clean-up all direction-related stuff in opentype/ and modules/.
Owen also noted that he's got mails about how theming engine is not working for some widget in Gtk+, when people wanted to design a red theme for use in their sub-marine! According to him, Gtk+ is being used in flight-control software too.
On the way back from pub to hotel, me, Owen and Daniel Viellard were talking about optimizations for ASCII text. Daniel mentioned how he close-circuits certain code-paths for ASCII-only text. Owen noted that he's not going to do any such thing in Pango, cause if ASCII rendering is much faster than the rest, then people will write applications that works Ok with ASCII, but fails (is very slow) with other characters... Thanks Owen :-).
[Unfortunately I didn't took a photo of him, so I stole the photo.]