### Function

# Pango shape

#### Declaration [src]

    void
    pango_shape (
      const char* text,
      int length,
      const PangoAnalysis* analysis,
      PangoGlyphString* glyphs
    )

#### Description [src]

Convert the characters in `text` into glyphs.

Given a segment of text and the corresponding `PangoAnalysis` structure returned from `pango_itemize()`, convert the characters into glyphs. You may also pass in only a substring of the item from `pango_itemize()`.

It is recommended that you use `pango_shape_full()` instead, since that API allows for shaping interaction happening across text item boundaries.

Some aspects of hyphen insertion and text transformation (in particular, capitalization) require log attrs, and thus can only be handled by `pango_shape_item()`.

Note that the extra attributes in the `analyis` that is returned from `pango_itemize()` have indices that are relative to the entire paragraph, so you need to subtract the item offset from their indices before calling `pango_shape()`.

#### Parameters

`text`

  Type: `const char*`

  The text to process.

  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`length`

  Type: `int`

  The length (in bytes) of `text`.

`analysis`

  Type: `PangoAnalysis`

  `PangoAnalysis` structure from `pango_itemize()`.

  The data is owned by the caller of the function.

`glyphs`

  Type: `PangoGlyphString`

  Glyph string in which to store results.

  The argument will be set by the function.
  The returned data is owned by the function.