| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>Shaping operations: HarfBuzz Manual</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> |
| <link rel="home" href="index.html" title="HarfBuzz Manual"> |
| <link rel="up" href="shaping-concepts.html" title="Shaping concepts"> |
| <link rel="prev" href="complex-scripts.html" title="Complex scripts"> |
| <link rel="next" href="unicode-character-categories.html" title="Unicode character categories"> |
| <meta name="generator" content="GTK-Doc V1.25 (XML mode)"> |
| <link rel="stylesheet" href="style.css" type="text/css"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> |
| <td width="100%" align="left" class="shortcuts"></td> |
| <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
| <td><a accesskey="u" href="shaping-concepts.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
| <td><a accesskey="p" href="complex-scripts.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> |
| <td><a accesskey="n" href="unicode-character-categories.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> |
| </tr></table> |
| <div class="section"> |
| <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
| <a name="shaping-operations"></a>Shaping operations</h2></div></div></div> |
| <p> |
| Shaping a complex-script text run involves transforming the |
| input sequence of Unicode codepoints with some combination of |
| operations that is specified in the shaping model for the |
| script. |
| </p> |
| <p> |
| The specific conditions that trigger a given operation for a |
| text run varies from script to script, as do the order that the |
| operations are performed in and which codepoints are |
| affected. However, the same general set of shaping operations is |
| common to all of the complex-script shaping models. |
| </p> |
| <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
| <li class="listitem"> |
| <p> |
| A <span class="emphasis"><em>reordering</em></span> operation moves a glyph |
| from its original ("logical") position in the sequence to |
| some other ("visual") position. |
| </p> |
| <p> |
| The shaping model for a given complex script might involve |
| more than one reordering step. |
| </p> |
| </li> |
| <li class="listitem"><p> |
| A <span class="emphasis"><em>joining</em></span> operation replaces a glyph |
| with an alternate form that is designed to connect with one |
| or more of the adjacent glyphs in the sequence. |
| </p></li> |
| <li class="listitem"> |
| <p> |
| A contextual <span class="emphasis"><em>substitution</em></span> operation |
| replaces either a single glyph or a subsequence of several |
| glyphs with an alternate glyph. This substitution is |
| performed when the original glyph or subsequence of glyphs |
| occurs in a specified position with respect to the |
| surrounding sequence. For example, one substitution might be |
| performed only when the target glyph is the first glyph in |
| the sequence, while another substitution is performed only |
| when a different target glyph occurs immediately after a |
| particular string pattern. |
| </p> |
| <p> |
| The shaping model for a given complex script might involve |
| multiple contextual-substitution operations, each applying |
| to different target glyphs and patterns, and which are |
| performed in separate steps. |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| A contextual <span class="emphasis"><em>positioning</em></span> operation |
| moves the horizontal and/or vertical position of a |
| glyph. This positioning move is performed when the glyph |
| occurs in a specified position with respect to the |
| surrounding sequence. |
| </p> |
| <p> |
| Many contextual positioning operations are used to place |
| <span class="emphasis"><em>mark</em></span> glyphs (such as diacritics, vowel |
| signs, and tone markers) with respect to |
| <span class="emphasis"><em>base</em></span> glyphs. However, some complex |
| scripts may use contextual positioning operations to |
| correctly place base glyphs as well, such as |
| when the script uses <span class="emphasis"><em>stacking</em></span> characters. |
| </p> |
| </li> |
| </ul></div> |
| </div> |
| <div class="footer"> |
| <hr>Generated by GTK-Doc V1.25</div> |
| </body> |
| </html> |