On Nov 29, 2009, at 10:27 AM, Kevin Ollivier wrote:

> Hi all,
> 
> The wx port is starting to look at getting proper support for complex text, 
> and one of the first places I started looking at was the Win and Mac port 
> implementations. I noticed that the complex text code in FontWin.cpp and 
> FontComplexTextMac.cpp is largely the same, passing the heavy lifting down to 
> their respective complex text controllers, and I actually wondered if they 
> could be merged if there were some tweaks to the APIs to make them compatible.
> 
> That led me to wonder if we couldn't make ComplexTextController one of our 
> platform classes and have USE() defines to determine the implementation. Then 
> we could move the drawComplexText, floatWidthForComplexText, and 
> offsetForPositionForComplexText into Font.cpp guarded by that USE() define. 
> The wx port can provide the native font handles the Win/Mac controllers need, 
> so it'd really be great if we could just add these into our build to get 
> complex text support working without having to implement the complex text 
> methods differently for each platform. 
> 
> BTW, I actually already did get UniscribeController compiling, actually, but 
> on Windows I had to have the build script copy it to platform/graphics/wx 
> because MSVC implicitly puts the current directory first on the path, which 
> was causing it to pick up platform/graphics/win/FontPlatformData.h instead of 
> the wx one when compiling that file. :( So that's something else that would 
> need to be addressed if ports can start sharing these files.
> 
> Thanks,
> 
> Kevin

Hi Kevin,

This sounds like a generally good idea. ComplextTextController is already using 
USE() macros to select between Core Text and ATSUI. I am not entirely sure how 
the the *ComplexText() methods will be guarded in Font.cpp in your proposal. 
Are you suggesting something like
#if USE(ATSUI) || USE(CORE_TEXT) || USE(UNISCRIBE) || …
?

There are still some differences in behavior between ComplexTextController and 
UniscribeController, so you’d need to find a way to accommodate them or 
eliminate them.

I look forward to seeing a patch!
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to