1--- 2Title: The Rendering Pipeline 3--- 4 5# The Rendering Pipeline 6 7The Pango rendering pipeline takes a string of Unicode characters, converts them 8it into glyphs, and renders them on some output medium. This section describes the 9various stages of this pipeline and the APIs that implement them. 10 11![Pango Rendering Pipeline](pipeline.png) 12 13Itemization 14: breaks a piece of text into segments with consistent direction and shaping 15 properies. Among other things, this determines which font to use for each 16 character. Use pango_itemize() or pango_itemize_with_base_dir() to itemize text. 17 18Shaping 19: converts characters into glyphs. Use pango_shape(), pango_shape_full() or 20 pango_shape_with_flags() to shape text. 21 22Line Breaking 23: determines where line breaks should be inserted into a sequence of glyphs. 24 The function pango_break() determines possible line breaks. The actual line 25 breaking is done by [class@Pango.Layout]. 26 27Justification 28: adjusts inter-word spacing to form lines of even length. This is done by 29 [class@Pango.Layout]. 30 31Rendering 32: takes a string of positioned glyphs, and renders them onto a surface. This is 33 accomplished by a [class@Pango.Renderer] object. The functions 34 pango_cairo_show_glyph_string() and pango_cairo_show_layout() use a 35 [class@Pango.Renderer] to draw text onto a cairo surface. 36