<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Level 2: 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="clusters.html" title="Clusters">
<link rel="prev" href="the-distinction-between-levels-0-and-1.html" title="The distinction between levels 0 and 1">
<link rel="next" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
<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="clusters.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="the-distinction-between-levels-0-and-1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="shaping-and-shape-plans.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="level-2"></a>Level 2</h2></div></div></div>
<p>
      HarfBuzz's level 2 cluster behavior uses a significantly
      different model than that of level 0 and level 1.
    </p>
<p>
      The level 2 behavior is easy to describe, but it may be
      difficult to understand in practical terms. In brief, level 2 
      performs no merging of clusters whatsoever.
    </p>
<p>
      This means that there is no initial base-and-mark merging step
      (as is done in level 0), and it means that reordering moves and
      ligature substitutions do not trigger a cluster merge.
    </p>
<p>
      Only one shaping operation directly affects clusters when using
      level 2:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
	  When a cluster <span class="emphasis"><em>decomposes</em></span>, all of the
	  resulting child clusters inherit as their cluster value the
	  cluster value of the parent cluster.
	</p></li></ul></div>
<p>
      When glyphs do form a ligature (or when some other feature
      substitutes multiple glyphs with one glyph) the cluster value
      of the first glyph is retained as the cluster value for the
      resulting ligature.
    </p>
<p>
      This occurrence sounds similar to a cluster merge, but it is
      different. In particular, no subsequent characters —
      including marks and modifiers — are affected. They retain
      their previous cluster values. 
    </p>
<p>
      Level 2 cluster behavior is ultimately less complex than level 0
      or level 1, but there are several cases for which processing
      cluster values produced at level 2 may be tricky. 
    </p>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="ligatures-with-combining-marks-in-level-2"></a>Ligatures with combining marks in level 2</h3></div></div></div>
<p>
	The first example of how HarfBuzz's level 2 cluster behavior
	can be tricky is when the text to be shaped includes combining
	marks attached to ligatures.
      </p>
<p>
	Let us start with an input sequence with the following
	characters (top row) and initial cluster values (bottom row):
      </p>
<pre class="programlisting">
	A,acute,B,breve,C,circumflex
	0,1    ,2,3    ,4,5
      </pre>
<p>
	If the sequence <code class="literal">A,B,C</code> forms a ligature,
	then these are the cluster values HarfBuzz will return under
	the various cluster levels:
      </p>
<p>
	Level 0:
      </p>
<pre class="programlisting">
	ABC,acute,breve,circumflex
	0  ,0    ,0    ,0
      </pre>
<p>
	Level 1:
      </p>
<pre class="programlisting">
	ABC,acute,breve,circumflex
	0  ,0    ,0    ,5
      </pre>
<p>
	Level 2:
      </p>
<pre class="programlisting">
	ABC,acute,breve,circumflex
	0  ,1    ,3    ,5
      </pre>
<p>
	Making sense of the level 2 result is the hardest for a client
	program, because there is nothing in the cluster values that
	indicates that <code class="literal">B</code> and <code class="literal">C</code>
	formed a ligature with <code class="literal">A</code>.
      </p>
<p>
	In contrast, the "merged" cluster values of the mark glyphs
	that are seen in the level 0 and level 1 output are evidence
	that a ligature substitution took place. 
      </p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="reordering-in-level-2"></a>Reordering in level 2</h3></div></div></div>
<p>
	Another example of how HarfBuzz's level 2 cluster behavior
	can be tricky is when glyphs reorder. Consider an input sequence
	with the following characters (top row) and initial cluster
	values (bottom row):
      </p>
<pre class="programlisting">
	A,B,C,D,E
	0,1,2,3,4
      </pre>
<p>
	Now imagine <code class="literal">D</code> moves before
	<code class="literal">B</code> in a reordering operation. The cluster
	values will then be:
      </p>
<pre class="programlisting">
	A,D,B,C,E
	0,3,1,2,4
      </pre>
<p>
	Next, if <code class="literal">D</code> forms a ligature with
	<code class="literal">B</code>, the output is:
      </p>
<pre class="programlisting">
	A,DB,C,E
	0,3 ,2,4
      </pre>
<p>
	However, in a different scenario, in which the shaping rules
	of the script instead caused <code class="literal">A</code> and
	<code class="literal">B</code> to form a ligature
	<span class="emphasis"><em>before</em></span> the <code class="literal">D</code> reordered, the
	result would be:
      </p>
<pre class="programlisting">
	AB,D,C,E
	0 ,3,2,4   
      </pre>
<p>
	There is no way for a client program to differentiate between
	these two scenarios based on the cluster values
	alone. Consequently, client programs that use level 2 might
	need to undertake additional work in order to manage cursor
	positioning, text attributes, or other desired features.
      </p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="other-considerations-in-level-2"></a>Other considerations in level 2</h3></div></div></div>
<p>
	There may be other problems encountered with ligatures under
	level 2, such as if the direction of the text is forced to
	opposite of its natural direction (for example, Arabic text
	that is forced into left-to-right directionality). But,
	generally speaking, these other scenarios are minor corner
	cases that are too obscure for most client programs to need to
	worry about.
      </p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25</div>
</body>
</html>