### Function

# Pango.shape_with_flags

#### Declaration [src]

    void
    pango_shape_with_flags (
      const char* item_text,
      int item_length,
      const char* paragraph_text,
      int paragraph_length,
      const PangoAnalysis* analysis,
      PangoGlyphString* glyphs,
      PangoShapeFlags flags
    )

#### 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()`.

This is similar to `pango_shape_full()`, except it also takes flags that can influence the shaping process.

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 do not pass the full paragraph text as `paragraph_text`, you need to subtract the item offset from their indices before calling `pango_shape_with_flags()`.

#### Parameters

`item_text` | `const char*`
| valid UTF-8 text to shape
| Ownership is not transferred to the callee
| The string is a NUL terminated UTF-8 string
`item_length` | `int`
| the length (in bytes) of `item_text`. -1 means nul-terminated text.
`paragraph_text` | `const char*`
| text of the paragraph (see details). May be `NULL`.
| Can be `NULL`
| Ownership is not transferred to the callee
| The string is a NUL terminated UTF-8 string
`paragraph_length` | `int`
| the length (in bytes) of `paragraph_text`. -1 means nul-terminated text.
`analysis` | `PangoAnalysis`
| `PangoAnalysis` structure from `pango_itemize()`
| Ownership is not transferred to the callee
`glyphs` | `PangoGlyphString`
| glyph string in which to store results
| Ownership is not transferred to the callee
`flags` | `PangoShapeFlags`
| flags influencing the shaping process