File: //opt/alt/alt-nodejs24/root/usr/share/doc/alt-nodejs24-libicu-doc/playout_8h.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ICU 77.1: layoutex/layout/playout.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ICU 77.1
 <span id="projectnumber">77.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_c8371c4a12a8c778b1d1929f1cadfb90.html">layoutex</a></li><li class="navelem"><a class="el" href="dir_85f13b36d96bf7d19941498801eef432.html">layout</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">playout.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>C API for paragraph layout.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include "<a class="el" href="ubidi_8h_source.html">unicode/ubidi.h</a>"</code><br />
<code>#include "layout/LETypes.h"</code><br />
<code>#include "<a class="el" href="plruns_8h_source.html">plruns.h</a>"</code><br />
</div>
<p><a href="playout_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a1906d8b1227129a7717a45b98eb47e20"><td class="memItemLeft" align="right" valign="top">typedef void </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a></td></tr>
<tr class="memdesc:a1906d8b1227129a7717a45b98eb47e20"><td class="mdescLeft"> </td><td class="mdescRight">The opaque type for a paragraph layout. <a href="#a1906d8b1227129a7717a45b98eb47e20">More...</a><br /></td></tr>
<tr class="separator:a1906d8b1227129a7717a45b98eb47e20"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa0299717d429526413f527ecb3627d82"><td class="memItemLeft" align="right" valign="top">typedef void </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a></td></tr>
<tr class="memdesc:aa0299717d429526413f527ecb3627d82"><td class="mdescLeft"> </td><td class="mdescRight">The opaque type for a line in a paragraph layout. <a href="#aa0299717d429526413f527ecb3627d82">More...</a><br /></td></tr>
<tr class="separator:aa0299717d429526413f527ecb3627d82"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a82426ed114f524fa6a398faea9901377"><td class="memItemLeft" align="right" valign="top">typedef void </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a></td></tr>
<tr class="memdesc:a82426ed114f524fa6a398faea9901377"><td class="mdescLeft"> </td><td class="mdescRight">The opaque type for a visual run in a line. <a href="#a82426ed114f524fa6a398faea9901377">More...</a><br /></td></tr>
<tr class="separator:a82426ed114f524fa6a398faea9901377"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a21467207287e1794a6dad975d600908e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a21467207287e1794a6dad975d600908e">pl_create</a> (const LEUnicode chars[], le_int32 count, const <a class="el" href="plruns_8h.html#a79af9ea9fda0905fa7f4c3af58855f97">pl_fontRuns</a> *fontRuns, const <a class="el" href="plruns_8h.html#a23e5c60496775eecf676b3eb19a577a5">pl_valueRuns</a> *levelRuns, const <a class="el" href="plruns_8h.html#a23e5c60496775eecf676b3eb19a577a5">pl_valueRuns</a> *scriptRuns, const <a class="el" href="plruns_8h.html#a22705ccd0260b47ed7c5ee361857bb23">pl_localeRuns</a> *localeRuns, <a class="el" href="ubidi_8h.html#ab2460a19f323ab9787a79a95db91a606">UBiDiLevel</a> paragraphLevel, le_bool vertical, LEErrorCode *status)</td></tr>
<tr class="memdesc:a21467207287e1794a6dad975d600908e"><td class="mdescLeft"> </td><td class="mdescRight">Construct a <code>ParagraphLayout</code> object for a styled paragraph. <a href="#a21467207287e1794a6dad975d600908e">More...</a><br /></td></tr>
<tr class="separator:a21467207287e1794a6dad975d600908e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9425f291ec7156553fac2ac11f474e1f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a9425f291ec7156553fac2ac11f474e1f">pl_close</a> (<a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr>
<tr class="memdesc:a9425f291ec7156553fac2ac11f474e1f"><td class="mdescLeft"> </td><td class="mdescRight">Close the given paragraph layout object. <a href="#a9425f291ec7156553fac2ac11f474e1f">More...</a><br /></td></tr>
<tr class="separator:a9425f291ec7156553fac2ac11f474e1f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad00dbb1e887c3204fe4d0dd86e660928"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_bool </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ad00dbb1e887c3204fe4d0dd86e660928">pl_isComplex</a> (const LEUnicode chars[], le_int32 count)</td></tr>
<tr class="memdesc:ad00dbb1e887c3204fe4d0dd86e660928"><td class="mdescLeft"> </td><td class="mdescRight">Examine the given text and determine if it contains characters in any script which requires complex processing to be rendered correctly. <a href="#ad00dbb1e887c3204fe4d0dd86e660928">More...</a><br /></td></tr>
<tr class="separator:ad00dbb1e887c3204fe4d0dd86e660928"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae045ee2f9c586163e4e6a6469cb223d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="ubidi_8h.html#ab2460a19f323ab9787a79a95db91a606">UBiDiLevel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ae045ee2f9c586163e4e6a6469cb223d4">pl_getParagraphLevel</a> (<a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr>
<tr class="memdesc:ae045ee2f9c586163e4e6a6469cb223d4"><td class="mdescLeft"> </td><td class="mdescRight">Return the resolved paragraph level. <a href="#ae045ee2f9c586163e4e6a6469cb223d4">More...</a><br /></td></tr>
<tr class="separator:ae045ee2f9c586163e4e6a6469cb223d4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae8bdb56e643541e8ba8d419341cb3b50"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102">UBiDiDirection</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ae8bdb56e643541e8ba8d419341cb3b50">pl_getTextDirection</a> (<a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr>
<tr class="memdesc:ae8bdb56e643541e8ba8d419341cb3b50"><td class="mdescLeft"> </td><td class="mdescRight">Return the directionality of the text in the paragraph. <a href="#ae8bdb56e643541e8ba8d419341cb3b50">More...</a><br /></td></tr>
<tr class="separator:ae8bdb56e643541e8ba8d419341cb3b50"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab0c14e44a2d839713dbc309d873653e0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ab0c14e44a2d839713dbc309d873653e0">pl_getAscent</a> (const <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr>
<tr class="memdesc:ab0c14e44a2d839713dbc309d873653e0"><td class="mdescLeft"> </td><td class="mdescRight">Return the max ascent value for all the fonts in the paragraph. <a href="#ab0c14e44a2d839713dbc309d873653e0">More...</a><br /></td></tr>
<tr class="separator:ab0c14e44a2d839713dbc309d873653e0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad879ccf159a9dd37d2ab59223ca9d66c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ad879ccf159a9dd37d2ab59223ca9d66c">pl_getDescent</a> (const <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr>
<tr class="memdesc:ad879ccf159a9dd37d2ab59223ca9d66c"><td class="mdescLeft"> </td><td class="mdescRight">Return the max descent value for all the fonts in the paragraph. <a href="#ad879ccf159a9dd37d2ab59223ca9d66c">More...</a><br /></td></tr>
<tr class="separator:ad879ccf159a9dd37d2ab59223ca9d66c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9cc04df281f13d0c76ffe94c435e2277"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a9cc04df281f13d0c76ffe94c435e2277">pl_getLeading</a> (const <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr>
<tr class="memdesc:a9cc04df281f13d0c76ffe94c435e2277"><td class="mdescLeft"> </td><td class="mdescRight">Return the max leading value for all the fonts in the paragraph. <a href="#a9cc04df281f13d0c76ffe94c435e2277">More...</a><br /></td></tr>
<tr class="separator:a9cc04df281f13d0c76ffe94c435e2277"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af8ed81ba317216c1e13c1f51c673225b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#af8ed81ba317216c1e13c1f51c673225b">pl_reflow</a> (<a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr>
<tr class="memdesc:af8ed81ba317216c1e13c1f51c673225b"><td class="mdescLeft"> </td><td class="mdescRight">Reset line breaking to start from the beginning of the paragraph. <a href="#af8ed81ba317216c1e13c1f51c673225b">More...</a><br /></td></tr>
<tr class="separator:af8ed81ba317216c1e13c1f51c673225b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a39cd1841b4bbab553b68d705b8b57250"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a39cd1841b4bbab553b68d705b8b57250">pl_nextLine</a> (<a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph, float width)</td></tr>
<tr class="memdesc:a39cd1841b4bbab553b68d705b8b57250"><td class="mdescLeft"> </td><td class="mdescRight">Return a <code>pl_line</code> object which represents next line in the paragraph. <a href="#a39cd1841b4bbab553b68d705b8b57250">More...</a><br /></td></tr>
<tr class="separator:a39cd1841b4bbab553b68d705b8b57250"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a78e6ba335c0e3f7129177736c376b41a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a78e6ba335c0e3f7129177736c376b41a">pl_closeLine</a> (<a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr>
<tr class="memdesc:a78e6ba335c0e3f7129177736c376b41a"><td class="mdescLeft"> </td><td class="mdescRight">Close the given line object. <a href="#a78e6ba335c0e3f7129177736c376b41a">More...</a><br /></td></tr>
<tr class="separator:a78e6ba335c0e3f7129177736c376b41a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4642bd99b1465232bbfe91ceb1d8cbc3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a4642bd99b1465232bbfe91ceb1d8cbc3">pl_countLineRuns</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr>
<tr class="memdesc:a4642bd99b1465232bbfe91ceb1d8cbc3"><td class="mdescLeft"> </td><td class="mdescRight">Count the number of visual runs in the line. <a href="#a4642bd99b1465232bbfe91ceb1d8cbc3">More...</a><br /></td></tr>
<tr class="separator:a4642bd99b1465232bbfe91ceb1d8cbc3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2caa7e15d4d34e9aeeac9ffaff96b78e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a2caa7e15d4d34e9aeeac9ffaff96b78e">pl_getLineAscent</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr>
<tr class="memdesc:a2caa7e15d4d34e9aeeac9ffaff96b78e"><td class="mdescLeft"> </td><td class="mdescRight">Get the ascent of the line. <a href="#a2caa7e15d4d34e9aeeac9ffaff96b78e">More...</a><br /></td></tr>
<tr class="separator:a2caa7e15d4d34e9aeeac9ffaff96b78e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a83f4a05d382402f36bc8e204526ee2a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a83f4a05d382402f36bc8e204526ee2a7">pl_getLineDescent</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr>
<tr class="memdesc:a83f4a05d382402f36bc8e204526ee2a7"><td class="mdescLeft"> </td><td class="mdescRight">Get the descent of the line. <a href="#a83f4a05d382402f36bc8e204526ee2a7">More...</a><br /></td></tr>
<tr class="separator:a83f4a05d382402f36bc8e204526ee2a7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa0900a2fbafacf4241ab9e28177f7071"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#aa0900a2fbafacf4241ab9e28177f7071">pl_getLineLeading</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr>
<tr class="memdesc:aa0900a2fbafacf4241ab9e28177f7071"><td class="mdescLeft"> </td><td class="mdescRight">Get the leading of the line. <a href="#aa0900a2fbafacf4241ab9e28177f7071">More...</a><br /></td></tr>
<tr class="separator:aa0900a2fbafacf4241ab9e28177f7071"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad7bbda22f9c659f07e680e1af9478b33"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ad7bbda22f9c659f07e680e1af9478b33">pl_getLineWidth</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr>
<tr class="memdesc:ad7bbda22f9c659f07e680e1af9478b33"><td class="mdescLeft"> </td><td class="mdescRight">Get the width of the line. <a href="#ad7bbda22f9c659f07e680e1af9478b33">More...</a><br /></td></tr>
<tr class="separator:ad7bbda22f9c659f07e680e1af9478b33"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3a76644cc0088e5c420f87658e979a9d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a3a76644cc0088e5c420f87658e979a9d">pl_getLineVisualRun</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line, le_int32 runIndex)</td></tr>
<tr class="memdesc:a3a76644cc0088e5c420f87658e979a9d"><td class="mdescLeft"> </td><td class="mdescRight">Get a <code>ParagraphLayout::VisualRun</code> object for a given visual run in the line. <a href="#a3a76644cc0088e5c420f87658e979a9d">More...</a><br /></td></tr>
<tr class="separator:a3a76644cc0088e5c420f87658e979a9d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a39693c0bb1ba1827320dd01690242f56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> const le_font * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a39693c0bb1ba1827320dd01690242f56">pl_getVisualRunFont</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr>
<tr class="memdesc:a39693c0bb1ba1827320dd01690242f56"><td class="mdescLeft"> </td><td class="mdescRight">Get the <code>le_font</code> object which represents the font of the visual run. <a href="#a39693c0bb1ba1827320dd01690242f56">More...</a><br /></td></tr>
<tr class="separator:a39693c0bb1ba1827320dd01690242f56"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a46fe4ac8e0726c35fd2a94d489283a7a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102">UBiDiDirection</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a46fe4ac8e0726c35fd2a94d489283a7a">pl_getVisualRunDirection</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr>
<tr class="memdesc:a46fe4ac8e0726c35fd2a94d489283a7a"><td class="mdescLeft"> </td><td class="mdescRight">Get the direction of the visual run. <a href="#a46fe4ac8e0726c35fd2a94d489283a7a">More...</a><br /></td></tr>
<tr class="separator:a46fe4ac8e0726c35fd2a94d489283a7a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad7e6b49d6b1a85dc239e25b311187578"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ad7e6b49d6b1a85dc239e25b311187578">pl_getVisualRunGlyphCount</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr>
<tr class="memdesc:ad7e6b49d6b1a85dc239e25b311187578"><td class="mdescLeft"> </td><td class="mdescRight">Get the number of glyphs in the visual run. <a href="#ad7e6b49d6b1a85dc239e25b311187578">More...</a><br /></td></tr>
<tr class="separator:ad7e6b49d6b1a85dc239e25b311187578"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aeea7884e04071af6cde0012d30feff3c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> const LEGlyphID * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#aeea7884e04071af6cde0012d30feff3c">pl_getVisualRunGlyphs</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr>
<tr class="memdesc:aeea7884e04071af6cde0012d30feff3c"><td class="mdescLeft"> </td><td class="mdescRight">Get the glyphs in the visual run. <a href="#aeea7884e04071af6cde0012d30feff3c">More...</a><br /></td></tr>
<tr class="separator:aeea7884e04071af6cde0012d30feff3c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a144d28739f18a1d4f8f0f74baefc29de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> const float * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a144d28739f18a1d4f8f0f74baefc29de">pl_getVisualRunPositions</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr>
<tr class="memdesc:a144d28739f18a1d4f8f0f74baefc29de"><td class="mdescLeft"> </td><td class="mdescRight">Get the (x, y) positions of the glyphs in the visual run. <a href="#a144d28739f18a1d4f8f0f74baefc29de">More...</a><br /></td></tr>
<tr class="separator:a144d28739f18a1d4f8f0f74baefc29de"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a10850ece2695f9f397faa2f11ce7faee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> const le_int32 * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a10850ece2695f9f397faa2f11ce7faee">pl_getVisualRunGlyphToCharMap</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr>
<tr class="memdesc:a10850ece2695f9f397faa2f11ce7faee"><td class="mdescLeft"> </td><td class="mdescRight">Get the glyph-to-character map for this visual run. <a href="#a10850ece2695f9f397faa2f11ce7faee">More...</a><br /></td></tr>
<tr class="separator:a10850ece2695f9f397faa2f11ce7faee"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab8692ca0b110aa9356c365cca59570d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ab8692ca0b110aa9356c365cca59570d7">pl_getVisualRunAscent</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr>
<tr class="memdesc:ab8692ca0b110aa9356c365cca59570d7"><td class="mdescLeft"> </td><td class="mdescRight">A convenience method which returns the ascent value for the font associated with this run. <a href="#ab8692ca0b110aa9356c365cca59570d7">More...</a><br /></td></tr>
<tr class="separator:ab8692ca0b110aa9356c365cca59570d7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aef26743ac49fdf52358980fc3ebb42d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#aef26743ac49fdf52358980fc3ebb42d2">pl_getVisualRunDescent</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr>
<tr class="memdesc:aef26743ac49fdf52358980fc3ebb42d2"><td class="mdescLeft"> </td><td class="mdescRight">A convenience method which returns the descent value for the font associated with this run. <a href="#aef26743ac49fdf52358980fc3ebb42d2">More...</a><br /></td></tr>
<tr class="separator:aef26743ac49fdf52358980fc3ebb42d2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8311aad1e369e8fee9e9166837853476"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a8311aad1e369e8fee9e9166837853476">pl_getVisualRunLeading</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr>
<tr class="memdesc:a8311aad1e369e8fee9e9166837853476"><td class="mdescLeft"> </td><td class="mdescRight">A convenience method which returns the leading value for the font associated with this run. <a href="#a8311aad1e369e8fee9e9166837853476">More...</a><br /></td></tr>
<tr class="separator:a8311aad1e369e8fee9e9166837853476"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C API for paragraph layout. </p>
<p>This is a technology preview. The API may change significantly. </p>
<p class="definition">Definition in file <a class="el" href="playout_8h_source.html">playout.h</a>.</p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="aa0299717d429526413f527ecb3627d82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0299717d429526413f527ecb3627d82">◆ </a></span>pl_line</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The opaque type for a line in a paragraph layout. </p>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000912">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
<p class="definition">Definition at line <a class="el" href="playout_8h_source.html#l00044">44</a> of file <a class="el" href="playout_8h_source.html">playout.h</a>.</p>
</div>
</div>
<a id="a1906d8b1227129a7717a45b98eb47e20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1906d8b1227129a7717a45b98eb47e20">◆ </a></span>pl_paragraph</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The opaque type for a paragraph layout. </p>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000911">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
<p class="definition">Definition at line <a class="el" href="playout_8h_source.html#l00037">37</a> of file <a class="el" href="playout_8h_source.html">playout.h</a>.</p>
</div>
</div>
<a id="a82426ed114f524fa6a398faea9901377"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82426ed114f524fa6a398faea9901377">◆ </a></span>pl_visualRun</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The opaque type for a visual run in a line. </p>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000913">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
<p class="definition">Definition at line <a class="el" href="playout_8h_source.html#l00051">51</a> of file <a class="el" href="playout_8h_source.html">playout.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a9425f291ec7156553fac2ac11f474e1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9425f291ec7156553fac2ac11f474e1f">◆ </a></span>pl_close()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> void pl_close </td>
<td>(</td>
<td class="paramtype"><a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> * </td>
<td class="paramname"><em>paragraph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Close the given paragraph layout object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paragraph</td><td>the <code>pl_paragraph</code> object to be closed. Once this routine returns the object can no longer be referenced</td></tr>
</table>
</dd>
</dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000915">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a78e6ba335c0e3f7129177736c376b41a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78e6ba335c0e3f7129177736c376b41a">◆ </a></span>pl_closeLine()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> void pl_closeLine </td>
<td>(</td>
<td class="paramtype"><a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> * </td>
<td class="paramname"><em>line</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Close the given line object. </p>
<p>Line objects are created by <code>pl_nextLine</code> but it is the client's responsibility to close them by calling this routine.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">line</td><td>the <code>pl_line</code> object to close.</td></tr>
</table>
</dd>
</dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000924">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a4642bd99b1465232bbfe91ceb1d8cbc3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4642bd99b1465232bbfe91ceb1d8cbc3">◆ </a></span>pl_countLineRuns()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_countLineRuns </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> * </td>
<td class="paramname"><em>line</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Count the number of visual runs in the line. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">line</td><td>the <code>pl_line</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of visual runs.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000925">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a21467207287e1794a6dad975d600908e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21467207287e1794a6dad975d600908e">◆ </a></span>pl_create()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a>* pl_create </td>
<td>(</td>
<td class="paramtype">const LEUnicode </td>
<td class="paramname"><em>chars</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">le_int32 </td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="plruns_8h.html#a79af9ea9fda0905fa7f4c3af58855f97">pl_fontRuns</a> * </td>
<td class="paramname"><em>fontRuns</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="plruns_8h.html#a23e5c60496775eecf676b3eb19a577a5">pl_valueRuns</a> * </td>
<td class="paramname"><em>levelRuns</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="plruns_8h.html#a23e5c60496775eecf676b3eb19a577a5">pl_valueRuns</a> * </td>
<td class="paramname"><em>scriptRuns</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="plruns_8h.html#a22705ccd0260b47ed7c5ee361857bb23">pl_localeRuns</a> * </td>
<td class="paramname"><em>localeRuns</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="ubidi_8h.html#ab2460a19f323ab9787a79a95db91a606">UBiDiLevel</a> </td>
<td class="paramname"><em>paragraphLevel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">le_bool </td>
<td class="paramname"><em>vertical</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">LEErrorCode * </td>
<td class="paramname"><em>status</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct a <code>ParagraphLayout</code> object for a styled paragraph. </p>
<p>The paragraph is specified as runs of text all in the same font. An <code>LEFontInstance</code> object and a limit offset are specified for each font run. The limit offset is the offset of the character immediately after the font run.</p>
<p>Clients can optionally specify directional runs and / or script runs. If these aren't specified they will be computed.</p>
<p>If any errors are encountered during construction, <code>status</code> will be set, and the object will be set to be empty.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">chars</td><td>is an array of the characters in the paragraph</td></tr>
<tr><td class="paramname">count</td><td>is the number of characters in the paragraph.</td></tr>
<tr><td class="paramname">fontRuns</td><td>a pointer to a <code>pl_fontRuns</code> object representing the font runs.</td></tr>
<tr><td class="paramname">levelRuns</td><td>is a pointer to a <code>pl_valueRuns</code> object representing the directional levels. If this pointer in <code>NULL</code> the levels will be determined by running the Unicode Bidi algorithm.</td></tr>
<tr><td class="paramname">scriptRuns</td><td>is a pointer to a <code>pl_valueRuns</code> object representing script runs. If this pointer in <code>NULL</code> the script runs will be determined using the Unicode code points.</td></tr>
<tr><td class="paramname">localeRuns</td><td>is a pointer to a <code>pl_localeRuns</code> object representing locale runs. The <code>Locale</code> objects are used to determine the language of the text. If this pointer is <code>NULL</code> the default locale will be used for all of the text.</td></tr>
<tr><td class="paramname">paragraphLevel</td><td>is the directionality of the paragraph, as in the UBiDi object.</td></tr>
<tr><td class="paramname">vertical</td><td>is <code>true</code> if the paragraph should be set vertically.</td></tr>
<tr><td class="paramname">status</td><td>will be set to any error code encountered during construction.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the newly created <code>pl_paragraph</code> object. The object will remain valid until <code>pl_close</code> is called.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="ubidi_8h.html" title=" C API: Bidi algorithm ">ubidi.h</a> </dd>
<dd>
longine.h </dd>
<dd>
<a class="el" href="plruns_8h.html" title="C API for run arrays. ">plruns.h</a></dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000914">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="ab0c14e44a2d839713dbc309d873653e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0c14e44a2d839713dbc309d873653e0">◆ </a></span>pl_getAscent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_getAscent </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> * </td>
<td class="paramname"><em>paragraph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the max ascent value for all the fonts in the paragraph. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paragraph</td><td>the <code>pl_paragraph</code></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the ascent value.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000919">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="ad879ccf159a9dd37d2ab59223ca9d66c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad879ccf159a9dd37d2ab59223ca9d66c">◆ </a></span>pl_getDescent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_getDescent </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> * </td>
<td class="paramname"><em>paragraph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the max descent value for all the fonts in the paragraph. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paragraph</td><td>the <code>pl_paragraph</code></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the decent value.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000920">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a9cc04df281f13d0c76ffe94c435e2277"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9cc04df281f13d0c76ffe94c435e2277">◆ </a></span>pl_getLeading()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_getLeading </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> * </td>
<td class="paramname"><em>paragraph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the max leading value for all the fonts in the paragraph. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paragraph</td><td>the <code>pl_paragraph</code></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the leading value.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000921">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a2caa7e15d4d34e9aeeac9ffaff96b78e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2caa7e15d4d34e9aeeac9ffaff96b78e">◆ </a></span>pl_getLineAscent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_getLineAscent </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> * </td>
<td class="paramname"><em>line</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the ascent of the line. </p>
<p>This is the maximum ascent of all the fonts on the line.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">line</td><td>the <code>pl_line</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the ascent of the line.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000926">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a83f4a05d382402f36bc8e204526ee2a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83f4a05d382402f36bc8e204526ee2a7">◆ </a></span>pl_getLineDescent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_getLineDescent </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> * </td>
<td class="paramname"><em>line</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the descent of the line. </p>
<p>This is the maximum descent of all the fonts on the line.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">line</td><td>the <code>pl_line</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the descent of the line.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000927">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="aa0900a2fbafacf4241ab9e28177f7071"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0900a2fbafacf4241ab9e28177f7071">◆ </a></span>pl_getLineLeading()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_getLineLeading </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> * </td>
<td class="paramname"><em>line</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the leading of the line. </p>
<p>This is the maximum leading of all the fonts on the line.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">line</td><td>the <code>pl_line</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the leading of the line.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000928">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a3a76644cc0088e5c420f87658e979a9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a76644cc0088e5c420f87658e979a9d">◆ </a></span>pl_getLineVisualRun()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a>* pl_getLineVisualRun </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> * </td>
<td class="paramname"><em>line</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">le_int32 </td>
<td class="paramname"><em>runIndex</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a <code>ParagraphLayout::VisualRun</code> object for a given visual run in the line. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">line</td><td>the <code>pl_line</code> object. </td></tr>
<tr><td class="paramname">runIndex</td><td>is the index of the run, in visual order.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the <code>pl_visualRun</code> object representing the visual run. This object is owned by the <code>pl_line</code> object which created it, and will remain valid for as long as the <code>pl_line</code> object is valid.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377" title="The opaque type for a visual run in a line. ">pl_visualRun</a></dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000930">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="ad7bbda22f9c659f07e680e1af9478b33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7bbda22f9c659f07e680e1af9478b33">◆ </a></span>pl_getLineWidth()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_getLineWidth </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> * </td>
<td class="paramname"><em>line</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the width of the line. </p>
<p>This is a convenience method which returns the last X position of the last visual run in the line.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">line</td><td>the <code>pl_line</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the width of the line.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000929">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="ae045ee2f9c586163e4e6a6469cb223d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae045ee2f9c586163e4e6a6469cb223d4">◆ </a></span>pl_getParagraphLevel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="ubidi_8h.html#ab2460a19f323ab9787a79a95db91a606">UBiDiLevel</a> pl_getParagraphLevel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> * </td>
<td class="paramname"><em>paragraph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the resolved paragraph level. </p>
<p>This is useful for those cases where the bidi analysis has determined the level based on the first strong character in the paragraph.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paragraph</td><td>the <code>pl_paragraph</code></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the resolved paragraph level.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000917">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="ae8bdb56e643541e8ba8d419341cb3b50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8bdb56e643541e8ba8d419341cb3b50">◆ </a></span>pl_getTextDirection()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102">UBiDiDirection</a> pl_getTextDirection </td>
<td>(</td>
<td class="paramtype"><a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> * </td>
<td class="paramname"><em>paragraph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the directionality of the text in the paragraph. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paragraph</td><td>the <code>pl_paragraph</code></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>UBIDI_LTR</code> if the text is all left to right, <code>UBIDI_RTL</code> if the text is all right to left, or <code>UBIDI_MIXED</code> if the text has mixed direction.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000918">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="ab8692ca0b110aa9356c365cca59570d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8692ca0b110aa9356c365cca59570d7">◆ </a></span>pl_getVisualRunAscent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_getVisualRunAscent </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> * </td>
<td class="paramname"><em>run</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>A convenience method which returns the ascent value for the font associated with this run. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">run</td><td>the <code>pl_visualRun</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the ascent value of this run's font.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000937">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="aef26743ac49fdf52358980fc3ebb42d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef26743ac49fdf52358980fc3ebb42d2">◆ </a></span>pl_getVisualRunDescent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_getVisualRunDescent </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> * </td>
<td class="paramname"><em>run</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>A convenience method which returns the descent value for the font associated with this run. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">run</td><td>the <code>pl_visualRun</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the descent value of this run's font.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000938">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a46fe4ac8e0726c35fd2a94d489283a7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46fe4ac8e0726c35fd2a94d489283a7a">◆ </a></span>pl_getVisualRunDirection()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102">UBiDiDirection</a> pl_getVisualRunDirection </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> * </td>
<td class="paramname"><em>run</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the direction of the visual run. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">run</td><td>the <code>pl_visualRun</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the direction of the run. This will be <code>UBIDI_LTR</code> if the run is left-to-right and <code>UBIDI_RTL</code> if the line is right-to-left.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000932">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a39693c0bb1ba1827320dd01690242f56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39693c0bb1ba1827320dd01690242f56">◆ </a></span>pl_getVisualRunFont()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> const le_font* pl_getVisualRunFont </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> * </td>
<td class="paramname"><em>run</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the <code>le_font</code> object which represents the font of the visual run. </p>
<p>This will always be a non-composite font.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">run</td><td>the <code>pl_visualRun</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the <code>le_font</code> object which represents the font of the visual run.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>le_font</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000931">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="ad7e6b49d6b1a85dc239e25b311187578"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7e6b49d6b1a85dc239e25b311187578">◆ </a></span>pl_getVisualRunGlyphCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_getVisualRunGlyphCount </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> * </td>
<td class="paramname"><em>run</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the number of glyphs in the visual run. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">run</td><td>the <code>pl_visualRun</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of glyphs.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000933">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="aeea7884e04071af6cde0012d30feff3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeea7884e04071af6cde0012d30feff3c">◆ </a></span>pl_getVisualRunGlyphs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> const LEGlyphID* pl_getVisualRunGlyphs </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> * </td>
<td class="paramname"><em>run</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the glyphs in the visual run. </p>
<p>Glyphs with the values <code>0xFFFE</code> and <code>0xFFFF</code> should be ignored.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">run</td><td>the <code>pl_visualRun</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the address of the array of glyphs for this visual run. The storage is owned by the <code>pl_visualRun</code> object and must not be deleted. It will remain valid as long as the <code>pl_visualRun</code> object is valid.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000934">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a10850ece2695f9f397faa2f11ce7faee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10850ece2695f9f397faa2f11ce7faee">◆ </a></span>pl_getVisualRunGlyphToCharMap()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> const le_int32* pl_getVisualRunGlyphToCharMap </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> * </td>
<td class="paramname"><em>run</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the glyph-to-character map for this visual run. </p>
<p>This maps the indices into the glyph array to indices into the character array used to create the paragraph.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">run</td><td>the <code>pl_visualRun</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the address of the character-to-glyph map for this visual run. The storage is owned by the <code>pl_visualRun</code> object and must not be deleted. It will remain valid as long as the <code>pl_visualRun</code> object is valid.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000936">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a8311aad1e369e8fee9e9166837853476"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8311aad1e369e8fee9e9166837853476">◆ </a></span>pl_getVisualRunLeading()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_int32 pl_getVisualRunLeading </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> * </td>
<td class="paramname"><em>run</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>A convenience method which returns the leading value for the font associated with this run. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">run</td><td>the <code>pl_visualRun</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the leading value of this run's font.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000939">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a144d28739f18a1d4f8f0f74baefc29de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a144d28739f18a1d4f8f0f74baefc29de">◆ </a></span>pl_getVisualRunPositions()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> const float* pl_getVisualRunPositions </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> * </td>
<td class="paramname"><em>run</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the (x, y) positions of the glyphs in the visual run. </p>
<p>To simplify storage management, the x and y positions are stored in a single array with the x positions at even offsets in the array and the corresponding y position in the following odd offset. There is an extra (x, y) pair at the end of the array which represents the advance of the final glyph in the run.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">run</td><td>the <code>pl_visualRun</code> object.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the address of the array of glyph positions for this visual run. The storage is owned by the <code>pl_visualRun</code> object and must not be deleted. It will remain valid as long as the <code>pl_visualRun</code> object is valid.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000935">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="ad00dbb1e887c3204fe4d0dd86e660928"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad00dbb1e887c3204fe4d0dd86e660928">◆ </a></span>pl_isComplex()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> le_bool pl_isComplex </td>
<td>(</td>
<td class="paramtype">const LEUnicode </td>
<td class="paramname"><em>chars</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">le_int32 </td>
<td class="paramname"><em>count</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Examine the given text and determine if it contains characters in any script which requires complex processing to be rendered correctly. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">chars</td><td>is an array of the characters in the paragraph</td></tr>
<tr><td class="paramname">count</td><td>is the number of characters in the paragraph.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if any of the text requires complex processing.</dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000916">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="a39cd1841b4bbab553b68d705b8b57250"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39cd1841b4bbab553b68d705b8b57250">◆ </a></span>pl_nextLine()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a>* pl_nextLine </td>
<td>(</td>
<td class="paramtype"><a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> * </td>
<td class="paramname"><em>paragraph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float </td>
<td class="paramname"><em>width</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return a <code>pl_line</code> object which represents next line in the paragraph. </p>
<p>The width of the line is specified each time so that it can be varied to support arbitrary paragraph shapes.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paragraph</td><td>the <code>pl_paragraph</code> </td></tr>
<tr><td class="paramname">width</td><td>is the width of the line. If <code>width</code> is less than or equal to zero, a <code>ParagraphLayout::Line</code> object representing the rest of the paragraph will be returned.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a <code>ParagraphLayout::Line</code> object which represents the line. The caller is responsible for deleting the object. Returns <code>NULL</code> if there are no more lines in the paragraph.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82" title="The opaque type for a line in a paragraph layout. ">pl_line</a></dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000923">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
<a id="af8ed81ba317216c1e13c1f51c673225b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8ed81ba317216c1e13c1f51c673225b">◆ </a></span>pl_reflow()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="umachine_8h.html#a676114b1a64bb7c2de15c919a00b28df">U_CAPI</a> void pl_reflow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> * </td>
<td class="paramname"><em>paragraph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reset line breaking to start from the beginning of the paragraph. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paragraph</td><td>the <code>pl_paragraph</code></td></tr>
</table>
</dd>
</dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000922">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>