404 Not Found


nginx
beegazpacho.com - GrazzMean
Uname: Linux in-mum-web1557.main-hosting.eu 5.14.0-611.42.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 24 05:30:20 EDT 2026 x86_64
Software: LiteSpeed
PHP version: 8.2.30 [ PHP INFO ] PHP os: Linux
Server Ip: 91.108.106.81
Your Ip: 216.73.216.168
User: u848900432 (848900432) | Group: o51372345 (1051372345)
Safe Mode: OFF
Disable Function:
NONE

name : playout_8h.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.9.1"/>
<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
   &#160;<span id="projectnumber">77.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @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&amp;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> &#124;
<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 &quot;<a class="el" href="ubidi_8h_source.html">unicode/ubidi.h</a>&quot;</code><br />
<code>#include &quot;layout/LETypes.h&quot;</code><br />
<code>#include &quot;<a class="el" href="plruns_8h_source.html">plruns.h</a>&quot;</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&#160;</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">&#160;</td><td class="mdescRight">The opaque type for a paragraph layout.  <a href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">More...</a><br /></td></tr>
<tr class="separator:a1906d8b1227129a7717a45b98eb47e20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0299717d429526413f527ecb3627d82"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</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">&#160;</td><td class="mdescRight">The opaque type for a line in a paragraph layout.  <a href="playout_8h.html#aa0299717d429526413f527ecb3627d82">More...</a><br /></td></tr>
<tr class="separator:aa0299717d429526413f527ecb3627d82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82426ed114f524fa6a398faea9901377"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</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">&#160;</td><td class="mdescRight">The opaque type for a visual run in a line.  <a href="playout_8h.html#a82426ed114f524fa6a398faea9901377">More...</a><br /></td></tr>
<tr class="separator:a82426ed114f524fa6a398faea9901377"><td class="memSeparator" colspan="2">&#160;</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> *&#160;</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">&#160;</td><td class="mdescRight">Construct a <code>ParagraphLayout</code> object for a styled paragraph.  <a href="playout_8h.html#a21467207287e1794a6dad975d600908e">More...</a><br /></td></tr>
<tr class="separator:a21467207287e1794a6dad975d600908e"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Close the given paragraph layout object.  <a href="playout_8h.html#a9425f291ec7156553fac2ac11f474e1f">More...</a><br /></td></tr>
<tr class="separator:a9425f291ec7156553fac2ac11f474e1f"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</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="playout_8h.html#ad00dbb1e887c3204fe4d0dd86e660928">More...</a><br /></td></tr>
<tr class="separator:ad00dbb1e887c3204fe4d0dd86e660928"><td class="memSeparator" colspan="2">&#160;</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>&#160;</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">&#160;</td><td class="mdescRight">Return the resolved paragraph level.  <a href="playout_8h.html#ae045ee2f9c586163e4e6a6469cb223d4">More...</a><br /></td></tr>
<tr class="separator:ae045ee2f9c586163e4e6a6469cb223d4"><td class="memSeparator" colspan="2">&#160;</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>&#160;</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">&#160;</td><td class="mdescRight">Return the directionality of the text in the paragraph.  <a href="playout_8h.html#ae8bdb56e643541e8ba8d419341cb3b50">More...</a><br /></td></tr>
<tr class="separator:ae8bdb56e643541e8ba8d419341cb3b50"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Return the max ascent value for all the fonts in the paragraph.  <a href="playout_8h.html#ab0c14e44a2d839713dbc309d873653e0">More...</a><br /></td></tr>
<tr class="separator:ab0c14e44a2d839713dbc309d873653e0"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Return the max descent value for all the fonts in the paragraph.  <a href="playout_8h.html#ad879ccf159a9dd37d2ab59223ca9d66c">More...</a><br /></td></tr>
<tr class="separator:ad879ccf159a9dd37d2ab59223ca9d66c"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Return the max leading value for all the fonts in the paragraph.  <a href="playout_8h.html#a9cc04df281f13d0c76ffe94c435e2277">More...</a><br /></td></tr>
<tr class="separator:a9cc04df281f13d0c76ffe94c435e2277"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Reset line breaking to start from the beginning of the paragraph.  <a href="playout_8h.html#af8ed81ba317216c1e13c1f51c673225b">More...</a><br /></td></tr>
<tr class="separator:af8ed81ba317216c1e13c1f51c673225b"><td class="memSeparator" colspan="2">&#160;</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> *&#160;</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">&#160;</td><td class="mdescRight">Return a <code>pl_line</code> object which represents next line in the paragraph.  <a href="playout_8h.html#a39cd1841b4bbab553b68d705b8b57250">More...</a><br /></td></tr>
<tr class="separator:a39cd1841b4bbab553b68d705b8b57250"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Close the given line object.  <a href="playout_8h.html#a78e6ba335c0e3f7129177736c376b41a">More...</a><br /></td></tr>
<tr class="separator:a78e6ba335c0e3f7129177736c376b41a"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Count the number of visual runs in the line.  <a href="playout_8h.html#a4642bd99b1465232bbfe91ceb1d8cbc3">More...</a><br /></td></tr>
<tr class="separator:a4642bd99b1465232bbfe91ceb1d8cbc3"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Get the ascent of the line.  <a href="playout_8h.html#a2caa7e15d4d34e9aeeac9ffaff96b78e">More...</a><br /></td></tr>
<tr class="separator:a2caa7e15d4d34e9aeeac9ffaff96b78e"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Get the descent of the line.  <a href="playout_8h.html#a83f4a05d382402f36bc8e204526ee2a7">More...</a><br /></td></tr>
<tr class="separator:a83f4a05d382402f36bc8e204526ee2a7"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Get the leading of the line.  <a href="playout_8h.html#aa0900a2fbafacf4241ab9e28177f7071">More...</a><br /></td></tr>
<tr class="separator:aa0900a2fbafacf4241ab9e28177f7071"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Get the width of the line.  <a href="playout_8h.html#ad7bbda22f9c659f07e680e1af9478b33">More...</a><br /></td></tr>
<tr class="separator:ad7bbda22f9c659f07e680e1af9478b33"><td class="memSeparator" colspan="2">&#160;</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> *&#160;</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">&#160;</td><td class="mdescRight">Get a <code>ParagraphLayout::VisualRun</code> object for a given visual run in the line.  <a href="playout_8h.html#a3a76644cc0088e5c420f87658e979a9d">More...</a><br /></td></tr>
<tr class="separator:a3a76644cc0088e5c420f87658e979a9d"><td class="memSeparator" colspan="2">&#160;</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 *&#160;</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">&#160;</td><td class="mdescRight">Get the <code>le_font</code> object which represents the font of the visual run.  <a href="playout_8h.html#a39693c0bb1ba1827320dd01690242f56">More...</a><br /></td></tr>
<tr class="separator:a39693c0bb1ba1827320dd01690242f56"><td class="memSeparator" colspan="2">&#160;</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>&#160;</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">&#160;</td><td class="mdescRight">Get the direction of the visual run.  <a href="playout_8h.html#a46fe4ac8e0726c35fd2a94d489283a7a">More...</a><br /></td></tr>
<tr class="separator:a46fe4ac8e0726c35fd2a94d489283a7a"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">Get the number of glyphs in the visual run.  <a href="playout_8h.html#ad7e6b49d6b1a85dc239e25b311187578">More...</a><br /></td></tr>
<tr class="separator:ad7e6b49d6b1a85dc239e25b311187578"><td class="memSeparator" colspan="2">&#160;</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 *&#160;</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">&#160;</td><td class="mdescRight">Get the glyphs in the visual run.  <a href="playout_8h.html#aeea7884e04071af6cde0012d30feff3c">More...</a><br /></td></tr>
<tr class="separator:aeea7884e04071af6cde0012d30feff3c"><td class="memSeparator" colspan="2">&#160;</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 *&#160;</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">&#160;</td><td class="mdescRight">Get the (x, y) positions of the glyphs in the visual run.  <a href="playout_8h.html#a144d28739f18a1d4f8f0f74baefc29de">More...</a><br /></td></tr>
<tr class="separator:a144d28739f18a1d4f8f0f74baefc29de"><td class="memSeparator" colspan="2">&#160;</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 *&#160;</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">&#160;</td><td class="mdescRight">Get the glyph-to-character map for this visual run.  <a href="playout_8h.html#a10850ece2695f9f397faa2f11ce7faee">More...</a><br /></td></tr>
<tr class="separator:a10850ece2695f9f397faa2f11ce7faee"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">A convenience method which returns the ascent value for the font associated with this run.  <a href="playout_8h.html#ab8692ca0b110aa9356c365cca59570d7">More...</a><br /></td></tr>
<tr class="separator:ab8692ca0b110aa9356c365cca59570d7"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">A convenience method which returns the descent value for the font associated with this run.  <a href="playout_8h.html#aef26743ac49fdf52358980fc3ebb42d2">More...</a><br /></td></tr>
<tr class="separator:aef26743ac49fdf52358980fc3ebb42d2"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</td><td class="mdescRight">A convenience method which returns the leading value for the font associated with this run.  <a href="playout_8h.html#a8311aad1e369e8fee9e9166837853476">More...</a><br /></td></tr>
<tr class="separator:a8311aad1e369e8fee9e9166837853476"><td class="memSeparator" colspan="2">&#160;</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">&#9670;&nbsp;</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">&#9670;&nbsp;</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">&#9670;&nbsp;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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&#160;</td>
          <td class="paramname"><em>chars</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">le_int32&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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>&#160;</td>
          <td class="paramname"><em>paragraphLevel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">le_bool&#160;</td>
          <td class="paramname"><em>vertical</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LEErrorCode *&#160;</td>
          <td class="paramname"><em>status</em>&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">le_int32&#160;</td>
          <td class="paramname"><em>runIndex</em>&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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&#160;</td>
          <td class="paramname"><em>chars</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">le_int32&#160;</td>
          <td class="paramname"><em>count</em>&#160;</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">&#9670;&nbsp;</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> *&#160;</td>
          <td class="paramname"><em>paragraph</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>width</em>&#160;</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">&#9670;&nbsp;</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> *&#160;</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&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
© 2026 GrazzMean
Beegazpacho


Let’s  Start  Your  Online  Journey  with  Beegazpacho 

Welcome to Beegazpacho,
where creativity meets strategy,
and innovation drives success.


Contact
Now


OUR CLIENTS

WhatsApp-Image-2021-12-06.png
Untitled-design-11.png
niaf-logo.png
20220406-163308-scaled.jpg
karchi-logo.png
20220405-171252.png
20220405-171309.png
20220321-161603.png
20220321-161611.png
20220321-161628.png
20220321-161244.png
20220321-161256.png
20220321-161450.png
20220321-161205.png
20220226-170222.png
20220321-161051.png
20211202-170852.png
Untitled-design-9
pidilite-png-logo-colour
logo-black-e1706125740216-qisosldqhzgcaerhdt6n4t3m4s50jr0iik48z0h5vk
Fraikin-Dayim-logo-1
hpcl-logo-2-1
services

Transforming Ideas into
Success

.01
Digital Marketing

We drive growth through data-driven strategies and cutting-edge techniques.

Learn More

.02
SEO

Improve your online visibility and rank higher on search engines with our expert SEO services.

Learn More

.03
Website Designing

We design websites that are not only visually stunning but also user-centric, ensuring seamless navigation and enhanced user experience.

Learn More

.04
App Development

Our apps are crafted to be intuitive, engaging, and functional, providing your users with an exceptional mobile experience.

Learn More

.05
Social Media Ads

Target the right audience with precision and creativity to maximize engagement and conversions.

Learn More

.06
Google Ads

Maximize ROI with precision-targeted campaigns on Google’s powerful ad platform.

Learn More

.07
Google My Business

Optimize your local presence with strategies that put your business on the map and attract more customers.

Learn More

.08
Graphic Designing

Our designs tell your brand’s story in a visually compelling way.

Learn More

.09
3D Videos

Bring your product to life with immersive and dynamic 3D explainer videos.

Learn More

about BEEGAZPACHO

creating special Things
For special brands

Join the ranks of successful brands by partnering with Beegazpacho

00+

Happy Customer

00+

Continents

Our vision is not just to be a service provider but to be your partner in growth. We see ourselves as an extension of your team, working tirelessly to ensure that your brand not only meets its goals but surpasses them.

Explore
more

Our Recent Work

Crafted with Passion and Precision

Connect now


Web Design
Design, Development & Identity

Logo Design
Design, Development & Identity

Creative Brand design
Design, Development & Identity

Product Design Marketing
Design, Development & Identity

DIGITAL MARKETING
SEO
WEBSITE DESIGNING
APP DEVELOPMENT
SOCIAL MEDIA ADS
GOOGLE ADS
GOOGLE MY BUSINESS
GRAPHIC DESINING
3D VIDEOS
Client Stories

Hear It from Those Who Know Us Best

Our clients’ success stories speak volumes about our commitment to excellence. Don’t just take our word for it—hear directly from the brands we’ve partnered with. Their testimonials highlight our ability to bring visions to life and create a lasting impact on their businesses.

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors