渲染管道

渲染管道

Pango 渲染管道采用一系列 Unicode 字符,将其转换为字形,并在某些输出媒介上渲染它们。此部分描述了此管道的各个阶段以及实现这些阶段的 API。

Pango Rendering Pipeline

项目化
将一段文本分解为具有统一方向和整形属性的片段。除其他事项外,这确定了要对每个字符使用的字体。使用 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 表面上绘制文本。