I found another library issue for how to get vertical alternate glyphs.

Currently,

1. Mac version of WebCoreSystemInterface.mm defines 
wkGetVerticalGlyphsForCharacters API
2. Mac uses this function and CoreText to draw vertical glyphs in 
GlyphPageTreeNodeMac.cpp
3. Windows version of WebKitSystemInterface.h doesn't have the API

Should I also write this one too? I'm asking because the module is different, 
but again I have no idea who owns WebKitSystemInterface.

The good part is that, the API probably uses not only 'vert' but also 'vrt2', 
the latter which recent CSS spec decided not to use, so we have more precise 
control to match to the current and coming spec.

The bad part is that, from experiences, we will probably face several issues 
due to broken fonts. It's not too hard to write the code from OpenType specs, 
but it might degrade stability since not all fonts conforms to OpenType spec 
very well.


Regards,
Koji

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Koji Ishii
Sent: Saturday, February 25, 2012 5:50 AM
To: Ryosuke Niwa
Cc: [email protected]
Subject: Re: [webkit-dev] 48459: Glyphs in vertical text tests are rotated 90 
degrees clockwise on Windows

Thank you Ryosuke for the prompt reply.

>> 1. Bring the CTFontGetVerticalTranslationsForGlyphs API to WebKitLibraries.
>> 2. Use other libraries such as FreeType[2] to read related OpenType tables.
>> 3. Read raw tables using GetFontData Win32 API and parse vhea/vorg/vmtx 
>> tables etc.
>
> Option 3 seems most desirable since it doesn't introduce new dependencies. 

Okay...I was afraid of that, because then the patch becomes larger and it might 
make review harder. But if that's preferable than introducing new dependencies, 
I can look into that.

I checked other platforms quickly. Without knowing much of them, from the 
submitted patches, APIs of Qt[1] and Gtk[2] look like similar to the one on OS 
X, but it wasn't clear to me if the patches support "upright" for non-CJK 
letters properly. Chromium Linux[3] doesn't have a patch yet, and Chromium 
Windows[4] patch has the same issue (uses @-font API.)

So guess is that if I were to write a function that calculates vertical 
translations from OpenType tables, it could be shared among some platforms.

I was thinking to put it into platform/graphics/win/OpenTypeUtilities.cpp, but 
should I put it into somewhere else?

[1] https://bugs.webkit.org/show_bug.cgi?id=51584
[2] https://bugs.webkit.org/show_bug.cgi?id=50619
[3] https://bugs.webkit.org/show_bug.cgi?id=69282
[4] https://bugs.webkit.org/show_bug.cgi?id=51450

-----
From: [email protected] [mailto:[email protected]] On Behalf Of 
Ryosuke Niwa
Sent: Saturday, February 25, 2012 5:20 AM
To: Koji Ishii
Cc: [email protected]
Subject: Re: [webkit-dev] 48459: Glyphs in vertical text tests are rotated 90 
degrees clockwise on Windows

On Fri, Feb 24, 2012 at 12:14 PM, Koji Ishii <[email protected]> wrote:
I was looking into bug 48459: "Glyphs in vertical text tests are rotated 90 
degrees clockwise on Windows"
https://bugs.webkit.org/show_bug.cgi?id=48459

and found that it has two issues:

1. It does not support text-orientation[1] property as OS X does.

2. It uses @-font, which lets Windows do a magic to rotate some code points and 
apply 'vert' automatically. But that means WebKit has no control over the glyph 
orientations, and therefore orientation of some code points don't match to the 
one on OS X.

I think the correct fix for the bug is to port showGlyphsWithAdvances from 
FontMac.mm to FontCGWin.cpp.

But I then encounter an issue that WebKitLibraries does not support 
CTFontGetVerticalTranslationsForGlyphs API.

Since Windows doesn't have such API, possible options I can think of are:

1. Bring the CTFontGetVerticalTranslationsForGlyphs API to WebKitLibraries.
2. Use other libraries such as FreeType[2] to read related OpenType tables.
3. Read raw tables using GetFontData Win32 API and parse vhea/vorg/vmtx tables 
etc.

Option 3 seems most desirable since it doesn't introduce new dependencies. 

- Ryosuke

_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to