
@c %start of fragment

@node Text
@chapter Text
Rendering text and glyphs

@section Overview
The functions with @emph{text} in their name form cairo's @dfn{toy} text
API. The toy API takes UTF-8 encoded text and is limited in its
functionality to rendering simple left-to-right text with no advanced
features. That means for example that most complex scripts like Hebrew,
Arabic, and Indic scripts are out of question. No kerning or correct
positioning of diacritical marks either. The font selection is pretty
limited too and doesn't handle the case that the selected font does not
cover the characters in the text. This set of functions are really that,
a toy text API, for testing and demonstration purposes. Any serious
application should avoid them.

The functions with @emph{glyphs} in their name form cairo's
@dfn{low-level} text API. The low-level API relies on the user to
convert text to a set of glyph indexes and positions. This is a very
hard problem and is best handled by external libraries, like the
pangocairo that is part of the Pango text layout and rendering library.
Pango is available from
@uref{http://www.pango.org/,http://www.pango.org/}.

@section Usage
@include defuns-cairo-text.xml.texi

@c %end of fragment
