diff options
Diffstat (limited to 'trunk/docs/tmpl/glyphs.sgml')
-rw-r--r-- | trunk/docs/tmpl/glyphs.sgml | 555 |
1 files changed, 555 insertions, 0 deletions
diff --git a/trunk/docs/tmpl/glyphs.sgml b/trunk/docs/tmpl/glyphs.sgml new file mode 100644 index 00000000..44dff0db --- /dev/null +++ b/trunk/docs/tmpl/glyphs.sgml @@ -0,0 +1,555 @@ +<!-- ##### SECTION Title ##### --> +Glyph Storage + +<!-- ##### SECTION Short_Description ##### --> +Structures for storing information about glyphs + +<!-- ##### SECTION Long_Description ##### --> +<para> +pango_shape() produces a string of glyphs which +can be measured or drawn to the screen. The following +structures are used to store information about +glyphs. +</para> + +<!-- ##### SECTION See_Also ##### --> +<para> + +</para> + +<!-- ##### SECTION Stability_Level ##### --> + + +<!-- ##### MACRO PANGO_SCALE ##### --> +<para> +The %PANGO_SCALE macro represents the scale between dimensions used +for Pango distances and device units. (The definition of device +units is dependent on the output device; it will typically be pixels +for a screen, and points for a printer.) %PANGO_SCALE is currently +1024, but this may be changed in the future. +</para> +<para> +When setting font sizes, device units are always considered to be +points (as in "12 point font"), rather than pixels. +</para> + + + +<!-- ##### MACRO PANGO_PIXELS ##### --> +<para> +Converts a dimension to device units by rounding. +</para> + +@d: a dimension in Pango units. +@Returns: rounded dimension in device units. + + +<!-- ##### MACRO PANGO_PIXELS_FLOOR ##### --> +<para> +Converts a dimension to device units by flooring. +</para> + +@d: a dimension in Pango units. +@Returns: floored dimension in device units. +@Since: 1.14 + + +<!-- ##### MACRO PANGO_PIXELS_CEIL ##### --> +<para> +Converts a dimension to device units by ceiling. +</para> + +@d: a dimension in Pango units. +@Returns: ceiled dimension in device units. +@Since: 1.14 + + +<!-- ##### MACRO PANGO_UNITS_ROUND ##### --> +<para> +Rounds a dimension to whole device units, but does not +convert it to device units. +</para> + +@d: a dimension in Pango units. +@Returns: rounded dimension in Pango units. +@Since: 1.18 + + +<!-- ##### FUNCTION pango_units_to_double ##### --> +<para> + +</para> + +@i: +@Returns: + + +<!-- ##### FUNCTION pango_units_from_double ##### --> +<para> + +</para> + +@d: +@Returns: + + +<!-- ##### STRUCT PangoRectangle ##### --> +<para> +The #PangoRectangle structure represents a rectangle. It is frequently +used to represent the logical or ink extents of a single glyph or section +of text. (See, for instance, pango_font_get_glyph_extents()) +</para> + +@x: X coordinate of the left side of the rectangle. +@y: Y coordinate of the the top side of the rectangle. +@width: width of the rectangle. +@height: height of the rectangle. + +<!-- ##### MACRO PANGO_ASCENT ##### --> +<para> +Extracts the <firstterm>ascent</firstterm> from a #PangoRectangle +representing glyph extents. The ascent is the distance from the +baseline to the highest point of the character. This is positive if the +glyph ascends above the baseline. +</para> + +@rect: a #PangoRectangle + + +<!-- ##### MACRO PANGO_DESCENT ##### --> +<para> +Extracts the <firstterm>descent</firstterm> from a #PangoRectangle +representing glyph extents. The descent is the distance from the +baseline to the lowest point of the character. This is positive if the +glyph descends below the baseline. +</para> + +@rect: a #PangoRectangle + + +<!-- ##### MACRO PANGO_LBEARING ##### --> +<para> +Extracts the <firstterm>left bearing</firstterm> from a #PangoRectangle +representing glyph extents. The left bearing is the distance from the +horizontal origin to the farthest left point of the character. +This is positive for characters drawn completely to the right of the +glyph origin. +</para> + +@rect: a #PangoRectangle + + +<!-- ##### MACRO PANGO_RBEARING ##### --> +<para> +Extracts the <firstterm>right bearing</firstterm> from a #PangoRectangle +representing glyph extents. The right bearing is the distance from the +horizontal origin to the farthest right point of the character. +This is positive except for characters drawn completely to the left of the +horizontal origin. +</para> + +@rect: a #PangoRectangle + + +<!-- ##### FUNCTION pango_extents_to_pixels ##### --> +<para> + +</para> + +@ink_rect: +@logical_rect: + + +<!-- ##### STRUCT PangoMatrix ##### --> +<para> + +</para> + +@xx: +@xy: +@yx: +@yy: +@x0: +@y0: + +<!-- ##### MACRO PANGO_TYPE_MATRIX ##### --> +<para> + +</para> + + + +<!-- ##### MACRO PANGO_MATRIX_INIT ##### --> +<para> + +</para> + + + +<!-- ##### FUNCTION pango_matrix_copy ##### --> +<para> + +</para> + +@matrix: +@Returns: + + +<!-- ##### FUNCTION pango_matrix_free ##### --> +<para> + +</para> + +@matrix: + + +<!-- ##### FUNCTION pango_matrix_translate ##### --> +<para> + +</para> + +@matrix: +@tx: +@ty: + + +<!-- ##### FUNCTION pango_matrix_scale ##### --> +<para> + +</para> + +@matrix: +@scale_x: +@scale_y: + + +<!-- ##### FUNCTION pango_matrix_rotate ##### --> +<para> + +</para> + +@matrix: +@degrees: + + +<!-- ##### FUNCTION pango_matrix_concat ##### --> +<para> + +</para> + +@matrix: +@new_matrix: + + +<!-- ##### FUNCTION pango_matrix_transform_point ##### --> +<para> + +</para> + +@matrix: +@x: +@y: + + +<!-- ##### FUNCTION pango_matrix_transform_distance ##### --> +<para> + +</para> + +@matrix: +@dx: +@dy: + + +<!-- ##### FUNCTION pango_matrix_transform_rectangle ##### --> +<para> + +</para> + +@matrix: +@rect: + + +<!-- ##### FUNCTION pango_matrix_transform_pixel_rectangle ##### --> +<para> + +</para> + +@matrix: +@rect: + + +<!-- ##### FUNCTION pango_matrix_get_font_scale_factor ##### --> +<para> + +</para> + +@matrix: +@Returns: + + +<!-- ##### TYPEDEF PangoGlyph ##### --> +<para> +A #PangoGlyph represents a single glyph in the output form of a string. +</para> + + +<!-- ##### MACRO PANGO_GLYPH_EMPTY ##### --> +<para> +The %PANGO_GLYPH_EMPTY macro represents a #PangoGlyph value that has a +special meaning, which is a zero-width empty glyph. This is useful for +example in shaper modules, to use as the glyph for various zero-width +Unicode characters (those passing pango_is_zero_width()). +</para> + + + +<!-- ##### MACRO PANGO_GLYPH_UNKNOWN_FLAG ##### --> +<para> +The %PANGO_GLYPH_UNKNOWN_FLAG macro is a flag value that can be added to +a #gunichar value of a valid Unicode character, to produce a #PangoGlyph +value, representing an unknown-character glyph for the respective #gunichar. +</para> + + + +<!-- ##### MACRO PANGO_GET_UNKNOWN_GLYPH ##### --> +<para> +Returns a #PangoGlyph value that means no glyph was found for @wc. +The way this unknown glyphs are rendered is backend specific. For example, +a box with the hexadecimal Unicode code-point of the character written in it +is what is done in the most common backends. +</para> + +@wc: a Unicode character + + +<!-- ##### STRUCT PangoGlyphInfo ##### --> +<para> +The #PangoGlyphInfo structure represents a single glyph together with +positioning information and visual attributes. +It contains the following fields. +</para> + +@glyph: the glyph itself. +@geometry: the positional information about the glyph. +@attr: the visual attributes of the glyph. + +<!-- ##### STRUCT PangoGlyphGeometry ##### --> +<para> +The #PangoGlyphGeometry structure contains width and positioning +information for a single glyph. +</para> + +@width: the logical width to use for the the character. +@x_offset: horizontal offset from nominal character position. +@y_offset: vertical offset from nominal character position. + +<!-- ##### TYPEDEF PangoGlyphUnit ##### --> +<para> +The #PangoGlyphUnit type is used to store dimensions within +Pango. Dimensions are stored in 1/%PANGO_SCALE of a device unit. +(A device unit might be a pixel for screen display, or +a point on a printer.) %PANGO_SCALE is currently 1024, and +may change in the future (unlikely though), but you should not +depend on its exact value. The PANGO_PIXELS() macro can be used +to convert from glyph units into device units with correct rounding. +</para> + + +<!-- ##### STRUCT PangoGlyphVisAttr ##### --> +<para> +The PangoGlyphVisAttr is used to communicate information between +the shaping phase and the rendering phase. More attributes may be +added in the future. +</para> + +@is_cluster_start: set for the first logical glyph in each cluster. (Clusters + are stored in visual order, within the cluster, glyphs + are always ordered in logical order, since visual + order is meaningless; that is, in Arabic text, accent glyphs + follow the glyphs for the base character.) + +<!-- ##### STRUCT PangoGlyphString ##### --> +<para> +The #PangoGlyphString structure is used to store strings +of glyphs with geometry and visual attribute information. +The storage for the glyph information is owned +by the structure which simplifies memory management. +</para> + +@num_glyphs: the number of glyphs in the string. +@glyphs: an array of #PangoGlyphInfo structures of length <structfield>num_glyphs</structfield>. +@log_clusters: for each glyph, byte index of the starting character for the +cluster. The indices are relative to the start of the text +corresponding to the PangoGlyphString. + +<!-- ##### STRUCT PangoGlyphItem ##### --> +<para> +A #PangoGlyphItem is a pair of a #PangoItem and the glyphs +resulting from shaping the text corresponding to an item. +As an example of the usage of #PangoGlyphItem, the results +of shaping text with #PangoLayout is a list of #PangoLayoutLine, +each of which contains a list of #PangoGlyphItem. +</para> + +@item: a #PangoItem structure that provides information + about a segment of text. +@glyphs: the glyphs obtained by shaping the text + corresponding to @item. + +<!-- ##### MACRO PANGO_TYPE_GLYPH_STRING ##### --> +<para> +The #GObject type for #PangoGlyphString. +</para> + + + +<!-- ##### FUNCTION pango_glyph_string_new ##### --> +<para> + +</para> + +@Returns: + + +<!-- ##### FUNCTION pango_glyph_string_copy ##### --> +<para> + +</para> + +@string: +@Returns: + + +<!-- ##### FUNCTION pango_glyph_string_set_size ##### --> +<para> + +</para> + +@string: +@new_len: + + +<!-- ##### FUNCTION pango_glyph_string_free ##### --> +<para> + +</para> + +@string: + + +<!-- ##### FUNCTION pango_glyph_string_extents ##### --> +<para> + +</para> + +@glyphs: +@font: +@ink_rect: +@logical_rect: + + +<!-- ##### FUNCTION pango_glyph_string_extents_range ##### --> +<para> + +</para> + +@glyphs: +@start: +@end: +@font: +@ink_rect: +@logical_rect: + + +<!-- ##### FUNCTION pango_glyph_string_get_width ##### --> +<para> + +</para> + +@glyphs: +@Returns: + + +<!-- ##### FUNCTION pango_glyph_string_index_to_x ##### --> +<para> + +</para> + +@glyphs: +@text: +@length: +@analysis: +@index_: +@trailing: +@x_pos: + + +<!-- ##### FUNCTION pango_glyph_string_x_to_index ##### --> +<para> + +</para> + +@glyphs: +@text: +@length: +@analysis: +@x_pos: +@index_: +@trailing: + + +<!-- ##### FUNCTION pango_glyph_string_get_logical_widths ##### --> +<para> + +</para> + +@glyphs: +@text: +@length: +@embedding_level: +@logical_widths: + + +<!-- ##### FUNCTION pango_glyph_item_split ##### --> +<para> + +</para> + +@orig: +@text: +@split_index: +@Returns: + + +<!-- ##### FUNCTION pango_glyph_item_apply_attrs ##### --> +<para> + +</para> + +@glyph_item: +@text: +@list: +@Returns: + + +<!-- ##### FUNCTION pango_glyph_item_letter_space ##### --> +<para> + +</para> + +@glyph_item: +@text: +@log_attrs: +@letter_spacing: + + +<!-- ##### FUNCTION pango_glyph_item_free ##### --> +<para> + +</para> + +@glyph_item: + + |