渲染管道
渲染管道
Pango 渲染管道采用一系列 Unicode 字符,将其转换为字形,并在某些输出媒介上渲染它们。此部分描述了此管道的各个阶段以及实现这些阶段的 API。
- 项目化
- 将一段文本分解为具有统一方向和整形属性的片段。除其他事项外,这确定了要对每个字符使用的字体。使用
pango_itemize()
或pango_itemize_with_base_dir()
来对文本进行项目化。 - 整形
- 将字符转换为字形。使用
pango_shape()
、pango_shape_full()
或pango_shape_item()
来整形文本。 - 断行
- 确定应该在字形序列中插入断行的位置。函数
pango_default_break()
、pango_tailor_break()
和pango_attr_break()
确定可能的断行。实际的断行由PangoLayout
完成。 - 对齐
- 调整字间距以形成长度均匀的行。这是由
PangoLayout
完成的。 - 渲染
- 采用一系列已定位的字形,并将其渲染到表面上。这是由
PangoRenderer
对象完成的。函数pango_cairo_show_glyph_string()
和pango_cairo_show_layout()
使用PangoRenderer
在 Cairo 表面上绘制文本。