1
<!-- ##### SECTION Title ##### -->
4
<!-- ##### SECTION Short_Description ##### -->
5
Functions to run the rendering pipeline
7
<!-- ##### SECTION Long_Description ##### -->
9
The Pango rendering pipeline takes a string of
10
Unicode characters and converts it into glyphs.
11
The functions described in this section accomplish
12
various steps of this process.
15
<!-- ##### SECTION See_Also ##### -->
20
<!-- ##### SECTION Stability_Level ##### -->
23
<!-- ##### STRUCT PangoContext ##### -->
25
The #PangoContext structure stores global information
26
used to control the itemization process.
30
<!-- ##### STRUCT PangoItem ##### -->
32
The #PangoItem structure stores information about
33
a segment of text. It contains the following fields:
36
@offset: the offset of the segment from the beginning of the
38
@length: the length of the segment in bytes.
39
@num_chars: the length of the segment in characters.
40
@analysis: the properties of the segment.
42
<!-- ##### STRUCT PangoAnalysis ##### -->
44
The #PangoAnalysis structure stores information about
45
the properties of a segment of text. It has the following
49
@shape_engine: the engine for doing rendering-system-dependent processing.
50
@lang_engine: the engine for doing rendering-system-independent processing.
51
@font: the font for this segment.
52
@level: the bidirectional level for this segment.
53
@gravity: the glyph orientation for this segment.
54
@flags: boolean flags for this segment (currently only one) (Since: 1.16).
55
@language: the detected language for this segment.
56
@extra_attrs: extra attributes for this segment.
58
<!-- ##### MACRO PANGO_ANALYSIS_FLAG_CENTERED_BASELINE ##### -->
60
Whether the segment should be shifted to center around the baseline.
61
Used in vertical writing directions mostly.
68
<!-- ##### ENUM PangoDirection ##### -->
74
@PANGO_DIRECTION_TTB_LTR:
75
@PANGO_DIRECTION_TTB_RTL:
76
@PANGO_DIRECTION_WEAK_LTR:
77
@PANGO_DIRECTION_WEAK_RTL:
78
@PANGO_DIRECTION_NEUTRAL:
80
<!-- ##### MACRO PANGO_TYPE_DIRECTION ##### -->
82
The #GObject type for #PangoDirection.
87
<!-- ##### FUNCTION pango_itemize ##### -->
101
<!-- ##### FUNCTION pango_itemize_with_base_dir ##### -->
116
<!-- ##### FUNCTION pango_item_free ##### -->
124
<!-- ##### FUNCTION pango_item_copy ##### -->
133
<!-- ##### FUNCTION pango_item_new ##### -->
141
<!-- ##### FUNCTION pango_item_split ##### -->
152
<!-- ##### FUNCTION pango_reorder_items ##### -->
161
<!-- ##### FUNCTION pango_context_new ##### -->
169
<!-- ##### FUNCTION pango_context_set_font_map ##### -->
178
<!-- ##### FUNCTION pango_context_get_font_map ##### -->
187
<!-- ##### FUNCTION pango_context_get_font_description ##### -->
196
<!-- ##### FUNCTION pango_context_set_font_description ##### -->
205
<!-- ##### FUNCTION pango_context_get_language ##### -->
214
<!-- ##### FUNCTION pango_context_set_language ##### -->
223
<!-- ##### FUNCTION pango_context_get_base_dir ##### -->
232
<!-- ##### FUNCTION pango_context_set_base_dir ##### -->
241
<!-- ##### FUNCTION pango_context_get_base_gravity ##### -->
250
<!-- ##### FUNCTION pango_context_set_base_gravity ##### -->
259
<!-- ##### FUNCTION pango_context_get_gravity ##### -->
268
<!-- ##### FUNCTION pango_context_get_gravity_hint ##### -->
277
<!-- ##### FUNCTION pango_context_set_gravity_hint ##### -->
286
<!-- ##### FUNCTION pango_context_get_matrix ##### -->
295
<!-- ##### FUNCTION pango_context_set_matrix ##### -->
304
<!-- ##### FUNCTION pango_context_load_font ##### -->
314
<!-- ##### FUNCTION pango_context_load_fontset ##### -->
325
<!-- ##### FUNCTION pango_context_get_metrics ##### -->
336
<!-- ##### FUNCTION pango_context_list_families ##### -->
346
<!-- ##### FUNCTION pango_get_mirror_char ##### -->
356
<!-- ##### FUNCTION pango_unichar_direction ##### -->
365
<!-- ##### FUNCTION pango_find_base_dir ##### -->
375
<!-- ##### FUNCTION pango_gravity_to_rotation ##### -->
384
<!-- ##### FUNCTION pango_break ##### -->
396
<!-- ##### FUNCTION pango_get_log_attrs ##### -->
409
<!-- ##### FUNCTION pango_find_paragraph_boundary ##### -->
416
@paragraph_delimiter_index:
417
@next_paragraph_start:
420
<!-- ##### FUNCTION pango_default_break ##### -->
432
<!-- ##### STRUCT PangoLogAttr ##### -->
434
The #PangoLogAttr structure stores information
435
about the attributes of a single character.
438
@is_line_break: if set, can break line in front of character
439
@is_mandatory_break: if set, must break line in front of character
440
@is_char_break: if set, can break here when doing character wrapping
441
@is_white: is whitespace character
442
@is_cursor_position: if set, cursor can appear in front of character.
443
i.e. this is a grapheme boundary, or the first character
445
@is_word_start: is first character in a word
446
@is_word_end: is first non-word char after a word
447
Note that in degenerate cases, you could have both @is_word_start
448
and @is_word_end set for some character.
449
@is_sentence_boundary: is a sentence boundary.
450
There are two ways to divide sentences. The first assigns all
451
inter-sentence whitespace/control/format chars to some sentence,
452
so all chars are in some sentence; @is_sentence_boundary denotes
453
the boundaries there. The second way doesn't assign
454
between-sentence spaces, etc. to any sentence, so
455
@is_sentence_start/@is_sentence_end mark the boundaries
457
@is_sentence_start: is first character in a sentence
458
@is_sentence_end: is first char after a sentence.
459
Note that in degenerate cases, you could have both @is_sentence_start
460
and @is_sentence_end set for some character. (e.g. no space after a
461
period, so the next sentence starts right away)
462
@backspace_deletes_character: if set, backspace deletes one character
463
rather than the entire grapheme cluster. This
464
field is only meaningful on grapheme
465
boundaries (where @is_cursor_position is
466
set). In some languages, the full grapheme
467
(e.g. letter + diacritics) is considered a
468
unit, while in others, each decomposed
469
character in the grapheme is a unit. In the
470
default implementation of pango_break(), this
471
bit is set on all grapheme boundaries except
472
those following Latin, Cyrillic or Greek base
475
<!-- ##### FUNCTION pango_shape ##### -->