GNOME的Pango 1.44发布,文本渲染改进


GNOME的Pango文本布局和渲染库在受到Red Hat开发团队的一些关注后,现在在全新的1.44版本中处于更好的状态。

Pango布局库近年来基本上处于维护模式,但最近由于Red Hat的Matthias Clasen和其他开发人员的工作而恢复了。这对于Pango被GTK工具套件使用非常重要。 在改进Pango的过程中,也对Cairo渲染器进行了一些改进。

新的Pango 1.44版本极大地改进了换行、更好地放置行和符号、亚像素定位、更好的空间处理、更多的字体信息被pango-list公开,以及其他改进。

换行

这个版本的一个改进领域是换行。

断字

还没有TeX风格的自动连字符(尽管最终可能会发生)。 但至少,当Pango在一个单词的中间断开一条线时(例如,在一个软连字符处),就会插入连字符。

软连字符的示例

更好的换行

Pango遵循Unicode UAX14和UAX29来查找字边界和换行机会。 其中描述的算法与语言无关,但允许特定于语言的调整。 Unicode标准称之为剪裁。

虽然Pango之前已经实现了与语言无关且独立的部分,但直到现在我们还没有在API中明确区分它们。

在1.44中,我们引入了一个新的pango_tailor_break()函数,该函数将语言特定的调整应用于具有统一语言的一段文本。 它意味着在 pango_default_break()之后调用。

子像素位置

Pango不再将字形位置和字体指标舍入为整数像素数。 这使得格式化字形的消费者(基本上是PangoRenderer的实现)决定他们是否想要将字形放置在子像素位置或像素对齐。


非整数范围

libpangocairo中的cairo渲染器将进行亚像素定位,但您需要cairo master才能获得最佳效果。 GTK大师很快将进行必要的更改,以便利用它的GL和Vulkan渲染器。

那些对Pango的文本渲染工作感兴趣的人可以通过Clasen的最新博客了解更多。

linuxboy的RSS地址:https://www.linuxboy.net/rssFeed.aspx

本文永久更新链接地址:https://www.linuxboy.net/Linux/2019-07/159642.htm

相关内容