/usr/share/gtk-doc/html/harfbuzz
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>hb-shape: 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="ch12.html" title="Core API"> <link rel="prev" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan"> <link rel="next" href="harfbuzz-hb-unicode.html" title="hb-unicode"> <meta name="generator" content="GTK-Doc V1.32 (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"> <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> <a href="#harfbuzz-hb-shape.description" class="shortcut">Description</a></span> </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="ch12.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="p" href="harfbuzz-hb-shape-plan.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="n" href="harfbuzz-hb-unicode.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="harfbuzz-hb-shape"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2><span class="refentrytitle"><a name="harfbuzz-hb-shape.top_of_page"></a>hb-shape</span></h2> <p>hb-shape — Conversion of text strings into positioned glyphs</p> </td> <td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="harfbuzz-hb-shape.functions"></a><h2>Functions</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="functions_proto_type"> <col class="functions_proto_name"> </colgroup> <tbody> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="harfbuzz-hb-shape.html#hb-shape" title="hb_shape ()">hb_shape</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a> </td> <td class="function_name"> <a class="link" href="harfbuzz-hb-shape.html#hb-shape-full" title="hb_shape_full ()">hb_shape_full</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type">const <span class="returnvalue">char</span> ** </td> <td class="function_name"> <a class="link" href="harfbuzz-hb-shape.html#hb-shape-list-shapers" title="hb_shape_list_shapers ()">hb_shape_list_shapers</a> <span class="c_punctuation">()</span> </td> </tr> </tbody> </table></div> </div> <div class="refsect1"> <a name="harfbuzz-hb-shape.includes"></a><h2>Includes</h2> <pre class="synopsis">#include <hb.h> </pre> </div> <div class="refsect1"> <a name="harfbuzz-hb-shape.description"></a><h2>Description</h2> <p>Shaping is the central operation of HarfBuzz. Shaping operates on buffers, which are sequences of Unicode characters that use the same font and have the same text direction, script, and language. After shaping the buffer contains the output glyphs and their positions.</p> </div> <div class="refsect1"> <a name="harfbuzz-hb-shape.functions_details"></a><h2>Functions</h2> <div class="refsect2"> <a name="hb-shape"></a><h3>hb_shape ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> hb_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>, <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>, <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *features</code></em>, <em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>);</pre> <p>Shapes <em class="parameter"><code>buffer</code></em> using <em class="parameter"><code>font</code></em> turning its Unicode characters content to positioned glyphs. If <em class="parameter"><code>features</code></em> is not <code class="literal">NULL</code>, it will be used to control the features applied during shaping. If two <em class="parameter"><code>features</code></em> have the same tag but overlapping ranges the value of the feature with the higher index takes precedence.</p> <div class="refsect3"> <a name="hb-shape.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>font</p></td> <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to use for shaping</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>buffer</p></td> <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> to shape</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>features</p></td> <td class="parameter_description"><p>an array of user specified <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> or <code class="literal">NULL</code>. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_features][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> </tr> <tr> <td class="parameter_name"><p>num_features</p></td> <td class="parameter_description"><p>the length of <em class="parameter"><code>features</code></em> array</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p> </div> <hr> <div class="refsect2"> <a name="hb-shape-full"></a><h3>hb_shape_full ()</h3> <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a> hb_shape_full (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>, <em class="parameter"><code><a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>, <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> *features</code></em>, <em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>, <em class="parameter"><code>const <span class="type">char</span> * const *shaper_list</code></em>);</pre> <p>See <a class="link" href="harfbuzz-hb-shape.html#hb-shape" title="hb_shape ()"><code class="function">hb_shape()</code></a> for details. If <em class="parameter"><code>shaper_list</code></em> is not <code class="literal">NULL</code>, the specified shapers will be used in the given order, otherwise the default shapers list will be used.</p> <div class="refsect3"> <a name="hb-shape-full.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>font</p></td> <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to use for shaping</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>buffer</p></td> <td class="parameter_description"><p>an <a class="link" href="harfbuzz-hb-buffer.html#hb-buffer-t" title="hb_buffer_t"><span class="type">hb_buffer_t</span></a> to shape</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>features</p></td> <td class="parameter_description"><p>an array of user specified <a class="link" href="harfbuzz-hb-common.html#hb-feature-t" title="hb_feature_t"><span class="type">hb_feature_t</span></a> or <code class="literal">NULL</code>. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_features][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> </tr> <tr> <td class="parameter_name"><p>num_features</p></td> <td class="parameter_description"><p>the length of <em class="parameter"><code>features</code></em> array</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>shaper_list</p></td> <td class="parameter_description"><p>a <code class="literal">NULL</code>-terminated array of shapers to use or <code class="literal">NULL</code>. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="hb-shape-full.returns"></a><h4>Returns</h4> <p> false if all shapers failed, true otherwise</p> </div> <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p> </div> <hr> <div class="refsect2"> <a name="hb-shape-list-shapers"></a><h3>hb_shape_list_shapers ()</h3> <pre class="programlisting">const <span class="returnvalue">char</span> ** hb_shape_list_shapers (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>Retrieves the list of shapers supported by HarfBuzz.</p> <div class="refsect3"> <a name="hb-shape-list-shapers.returns"></a><h4>Returns</h4> <p>an array of constant strings. </p> <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></p> </div> <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p> </div> </div> </div> <div class="footer"> <hr>Generated by GTK-Doc V1.32</div> </body> </html>
.
Edit
..
Edit
HarfBuzz.png
Edit
HarfBuzz.svg
Edit
a-clustering-example-for-levels-0-and-1.html
Edit
aat-shaping.html
Edit
adding-text-to-the-buffer.html
Edit
annotation-glossary.html
Edit
api-index-0-9-10.html
Edit
api-index-0-9-11.html
Edit
api-index-0-9-2.html
Edit
api-index-0-9-20.html
Edit
api-index-0-9-22.html
Edit
api-index-0-9-28.html
Edit
api-index-0-9-30.html
Edit
api-index-0-9-31.html
Edit
api-index-0-9-38.html
Edit
api-index-0-9-39.html
Edit
api-index-0-9-41.html
Edit
api-index-0-9-42.html
Edit
api-index-0-9-5.html
Edit
api-index-0-9-7.html
Edit
api-index-0-9-8.html
Edit
api-index-1-0-5.html
Edit
api-index-1-1-2.html
Edit
api-index-1-1-3.html
Edit
api-index-1-2-3.html
Edit
api-index-1-3-3.html
Edit
api-index-1-4-0.html
Edit
api-index-1-4-2.html
Edit
api-index-1-4-3.html
Edit
api-index-1-5-0.html
Edit
api-index-1-6-0.html
Edit
api-index-1-7-5.html
Edit
api-index-1-7-7.html
Edit
api-index-1-8-0.html
Edit
api-index-1-8-1.html
Edit
api-index-1-8-5.html
Edit
api-index-1-8-6.html
Edit
api-index-1-9-0.html
Edit
api-index-2-0-0.html
Edit
api-index-2-1-0.html
Edit
api-index-2-2-0.html
Edit
api-index-2-3-0.html
Edit
api-index-2-4-0.html
Edit
api-index-2-5-0.html
Edit
api-index-2-6-0.html
Edit
api-index-2-7-3.html
Edit
api-index-full.html
Edit
buffers-language-script-and-direction.html
Edit
building.html
Edit
ch01s03.html
Edit
ch03s02.html
Edit
ch03s03.html
Edit
ch12.html
Edit
ch13.html
Edit
ch14.html
Edit
ch15.html
Edit
clusters.html
Edit
complex-scripts.html
Edit
customizing-unicode-functions.html
Edit
deprecated-api-index.html
Edit
fonts-and-faces-custom-functions.html
Edit
fonts-and-faces-native-opentype.html
Edit
fonts-and-faces-variable.html
Edit
fonts-and-faces.html
Edit
getting-started.html
Edit
graphite-shaping.html
Edit
harfbuzz-hb-aat-layout.html
Edit
harfbuzz-hb-blob.html
Edit
harfbuzz-hb-buffer.html
Edit
harfbuzz-hb-common.html
Edit
harfbuzz-hb-coretext.html
Edit
harfbuzz-hb-deprecated.html
Edit
harfbuzz-hb-directwrite.html
Edit
harfbuzz-hb-face.html
Edit
harfbuzz-hb-font.html
Edit
harfbuzz-hb-ft.html
Edit
harfbuzz-hb-gdi.html
Edit
harfbuzz-hb-glib.html
Edit
harfbuzz-hb-gobject.html
Edit
harfbuzz-hb-graphite2.html
Edit
harfbuzz-hb-icu.html
Edit
harfbuzz-hb-map.html
Edit
harfbuzz-hb-ot-color.html
Edit
harfbuzz-hb-ot-font.html
Edit
harfbuzz-hb-ot-layout.html
Edit
harfbuzz-hb-ot-math.html
Edit
harfbuzz-hb-ot-meta.html
Edit
harfbuzz-hb-ot-metrics.html
Edit
harfbuzz-hb-ot-name.html
Edit
harfbuzz-hb-ot-shape.html
Edit
harfbuzz-hb-ot-var.html
Edit
harfbuzz-hb-set.html
Edit
harfbuzz-hb-shape-plan.html
Edit
harfbuzz-hb-shape.html
Edit
harfbuzz-hb-unicode.html
Edit
harfbuzz-hb-uniscribe.html
Edit
harfbuzz-hb-version.html
Edit
harfbuzz.devhelp2
Edit
home.png
Edit
index.html
Edit
install-harfbuzz.html
Edit
integration-coretext.html
Edit
integration-freetype.html
Edit
integration-icu.html
Edit
integration-python.html
Edit
integration-uniscribe.html
Edit
integration.html
Edit
left-insensitive.png
Edit
left.png
Edit
level-2.html
Edit
object-model-blobs.html
Edit
object-model-lifecycle.html
Edit
object-model-object-types.html
Edit
object-model-user-data.html
Edit
object-model.html
Edit
opentype-shaping-models.html
Edit
pt01.html
Edit
pt02.html
Edit
reordering-in-levels-0-and-1.html
Edit
right-insensitive.png
Edit
right.png
Edit
setting-buffer-properties.html
Edit
shaping-and-shape-plans.html
Edit
shaping-concepts.html
Edit
shaping-opentype-features.html
Edit
shaping-operations.html
Edit
shaping-plans-and-caching.html
Edit
shaping-shaper-selection.html
Edit
style.css
Edit
text-runs.html
Edit
the-distinction-between-levels-0-and-1.html
Edit
unicode-character-categories.html
Edit
up-insensitive.png
Edit
up.png
Edit
utilities-common-types-apis.html
Edit
utilities-ucdn.html
Edit
utilities.html
Edit
what-harfbuzz-doesnt-do.html
Edit
what-is-harfbuzz.html
Edit
why-do-i-need-a-shaping-engine.html
Edit
why-is-it-called-harfbuzz.html
Edit
working-with-harfbuzz-clusters.html
Edit