GNOME Bugzilla – Bug 141541
Add OpenType support in Thai module
Last modified: 2004-12-22 21:47:04 UTC
I have prepared a patch for pango Thai module so that it reads and interprets necessary OpenType tables as well, while legacy fonts with PUA glyphs are still supported.
Created attachment 27250 [details] [review] Proposed patch A proposed patch to read and interpret OpenType tables after ordinary clustering process in thai-shaper.
Created attachment 27251 [details] Test OTF font
Created attachment 27252 [details] Thai test message
Created attachment 27255 [details] Gedit screenshot, using the test message and font. Issues: 1. The patch and font rely on 'calt' table, which is not read by Uniscribe Thai shaper, as described at http://www.microsoft.com/typography/otfntdev/thaiot/shaping.htm, in which 'ccmp' is the only GSUB table that is read and interpreted. So, this is one incompatibility. 2. Notice the second line in the screen shot. The below-based vowel in the second column should have been placed below the base consonant, according to the GPOS table, not mangled like this. I think the GPOS data in the font is OK. But pango wouldn't place it right unless a positive y position of the anchor is used. This may be pango/freetype problem, which may be worth discussed in a separate bug. 3. The misplaced marks in the third and fourth lines should be fontforge's problem, as I find the generated GSUB tables are just incomplete.
Add PATCH keyword.
Bug #142544 filed with proposed patch to solve issue 2 in Comment #4.
Oops. Accidentally overwrote dependency on Bug #142544. Add it back.
Created attachment 27702 [details] Gedit screenshot, with Bug #142544 fixed.
Issue 2 was solved with the fix of Bug #142544. Issue 3 does not belong to Pango. Dismissed. For issue 1, I decide to be compatible with Uniscribe, so as not to have too many versions of specifications. So, the 'calt' feature should not be required.
Created attachment 28320 [details] New version of test OTF, with 'calt' replaced by 'ccmp'.
Created attachment 28323 [details] [review] Patch version 2, with 'calt' reading removed, plus a little rearrangement Previous patch obsoleted. If all is OK. I'll commit the patch soon.
Since the patch has been tested with pango-1-4 branch, I have committed both to HEAD and pango-1-4. Please re-open this bug if any problem is found. Mon Jun 7 2004 Theppitak Karoonboonyanan <thep@linux.thai.net> * modules/thai/Makefile.am modules/thai/thai-shaper.c (thai_engine_shape) +modules/thai/thai-ot.c +modules/thai/thai-ot.h: Add OpenType support in Thai module. (#141541)