ICU布局引擎

Sab*_*aba 4 icu

我正在尝试使用ICU来布局复杂的脚本.它在布局引擎用户指南(http://userguide.icu-project.org/layoutengine)中有一个示例.看起来它很简单,但是当我开始在示例代码中测试它时,我被困在LEFontInstance创建中.

它没有任何东西可以满足特定的字体类型(ttf/otf等).他们举了一个PortableFontInstanceletest.cpp文件中定义和使用ttf字体的例子.我从所有这些信息中收集的是,如果我们想要按名称选择特定字体,我们必须编写一个新类,继承LEFontInstance自己并实现字体选择.

这对我来说非常令人沮丧,因为我认为众所周知的字体格式和系统字体表的使用应该包含在这样的库中,否则我作为用户必须实现字体读取和选择的所有功能.布局引擎可以在此之后处理字形.

是否值得使用ICU来布局复杂的脚本(因为SDKs窗口和苹果提供了对系统字体表中字体的充分支持)?
如果我使用ICU布局引擎需要付出多少努力?(我可以看到我必须自己处理所有字体格式.)

还有什么我在这里失踪的吗?

Ste*_*mis 7

我将在这里添加一个更新的答案,我们(ICU)现在建议使用HarfBuzz而不是ICU的布局引擎.有一个桥接器允许你使用ICU API来对抗HB,但你应该使用HarfBuzz而不是ICU.