<!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.11"/> <title>ICU 58.2: 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="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 58.2  <span id="projectnumber">58.2</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.11 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_b2f33c71d4aa5e7af42a1ca61ff5af1b.html">source</a></li><li class="navelem"><a class="el" href="dir_4d3b0a01d7436e8742288fb5e5268bff.html">layoutex</a></li><li class="navelem"><a class="el" href="dir_f221a15f0be525f9fa65d555908da0da.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:a4195eb2ddfa32c7219ebaed3d4875122"><td class="memItemLeft" align="right" valign="top"><a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a4195eb2ddfa32c7219ebaed3d4875122">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:a4195eb2ddfa32c7219ebaed3d4875122"><td class="mdescLeft"> </td><td class="mdescRight">Construct a <code>ParagraphLayout</code> object for a styled paragraph. <a href="#a4195eb2ddfa32c7219ebaed3d4875122">More...</a><br /></td></tr> <tr class="separator:a4195eb2ddfa32c7219ebaed3d4875122"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a90e50608ad6e47f5a83c1ec0611a025c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a90e50608ad6e47f5a83c1ec0611a025c">pl_close</a> (<a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr> <tr class="memdesc:a90e50608ad6e47f5a83c1ec0611a025c"><td class="mdescLeft"> </td><td class="mdescRight">Close the given paragraph layout object. <a href="#a90e50608ad6e47f5a83c1ec0611a025c">More...</a><br /></td></tr> <tr class="separator:a90e50608ad6e47f5a83c1ec0611a025c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a816f537e2657d704050ff520b87a6d4b"><td class="memItemLeft" align="right" valign="top">le_bool </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a816f537e2657d704050ff520b87a6d4b">pl_isComplex</a> (const LEUnicode chars[], le_int32 count)</td></tr> <tr class="memdesc:a816f537e2657d704050ff520b87a6d4b"><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="#a816f537e2657d704050ff520b87a6d4b">More...</a><br /></td></tr> <tr class="separator:a816f537e2657d704050ff520b87a6d4b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5ee8d68a8f564eff4b8f0bd42fb35d99"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ubidi_8h.html#ab2460a19f323ab9787a79a95db91a606">UBiDiLevel</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a5ee8d68a8f564eff4b8f0bd42fb35d99">pl_getParagraphLevel</a> (<a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr> <tr class="memdesc:a5ee8d68a8f564eff4b8f0bd42fb35d99"><td class="mdescLeft"> </td><td class="mdescRight">Return the resolved paragraph level. <a href="#a5ee8d68a8f564eff4b8f0bd42fb35d99">More...</a><br /></td></tr> <tr class="separator:a5ee8d68a8f564eff4b8f0bd42fb35d99"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:add47cbf4a408161d9c7ac2aba113dc0e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102">UBiDiDirection</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#add47cbf4a408161d9c7ac2aba113dc0e">pl_getTextDirection</a> (<a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr> <tr class="memdesc:add47cbf4a408161d9c7ac2aba113dc0e"><td class="mdescLeft"> </td><td class="mdescRight">Return the directionality of the text in the paragraph. <a href="#add47cbf4a408161d9c7ac2aba113dc0e">More...</a><br /></td></tr> <tr class="separator:add47cbf4a408161d9c7ac2aba113dc0e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a60b7db040812caf999affa47a64c8654"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a60b7db040812caf999affa47a64c8654">pl_getAscent</a> (const <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr> <tr class="memdesc:a60b7db040812caf999affa47a64c8654"><td class="mdescLeft"> </td><td class="mdescRight">Get the max ascent value for all the fonts in the paragraph. <a href="#a60b7db040812caf999affa47a64c8654">More...</a><br /></td></tr> <tr class="separator:a60b7db040812caf999affa47a64c8654"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acb99fd0b7613a1b70ef15607cc17503f"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#acb99fd0b7613a1b70ef15607cc17503f">pl_getDescent</a> (const <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr> <tr class="memdesc:acb99fd0b7613a1b70ef15607cc17503f"><td class="mdescLeft"> </td><td class="mdescRight">Return the max descent value for all the fonts in the paragraph. <a href="#acb99fd0b7613a1b70ef15607cc17503f">More...</a><br /></td></tr> <tr class="separator:acb99fd0b7613a1b70ef15607cc17503f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad29d243c96551da13e46dea7762be767"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ad29d243c96551da13e46dea7762be767">pl_getLeading</a> (const <a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr> <tr class="memdesc:ad29d243c96551da13e46dea7762be767"><td class="mdescLeft"> </td><td class="mdescRight">Return the max leading value for all the fonts in the paragraph. <a href="#ad29d243c96551da13e46dea7762be767">More...</a><br /></td></tr> <tr class="separator:ad29d243c96551da13e46dea7762be767"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a89b26f7697f7c793171572c3c27e6097"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a89b26f7697f7c793171572c3c27e6097">pl_reflow</a> (<a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph)</td></tr> <tr class="memdesc:a89b26f7697f7c793171572c3c27e6097"><td class="mdescLeft"> </td><td class="mdescRight">Reset line breaking to start from the beginning of the paragraph. <a href="#a89b26f7697f7c793171572c3c27e6097">More...</a><br /></td></tr> <tr class="separator:a89b26f7697f7c793171572c3c27e6097"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab3b43c93c0f7012eb6cc1cfd59fb9f82"><td class="memItemLeft" align="right" valign="top"><a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ab3b43c93c0f7012eb6cc1cfd59fb9f82">pl_nextLine</a> (<a class="el" href="playout_8h.html#a1906d8b1227129a7717a45b98eb47e20">pl_paragraph</a> *paragraph, float width)</td></tr> <tr class="memdesc:ab3b43c93c0f7012eb6cc1cfd59fb9f82"><td class="mdescLeft"> </td><td class="mdescRight">Return a <code>pl_line</code> object which represents next line in the paragraph. <a href="#ab3b43c93c0f7012eb6cc1cfd59fb9f82">More...</a><br /></td></tr> <tr class="separator:ab3b43c93c0f7012eb6cc1cfd59fb9f82"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3853bf7172907c3751025f5c9231ce50"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a3853bf7172907c3751025f5c9231ce50">pl_closeLine</a> (<a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr> <tr class="memdesc:a3853bf7172907c3751025f5c9231ce50"><td class="mdescLeft"> </td><td class="mdescRight">Close the given line object. <a href="#a3853bf7172907c3751025f5c9231ce50">More...</a><br /></td></tr> <tr class="separator:a3853bf7172907c3751025f5c9231ce50"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab04ab230f5a60e45416311deecbe290f"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ab04ab230f5a60e45416311deecbe290f">pl_countLineRuns</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr> <tr class="memdesc:ab04ab230f5a60e45416311deecbe290f"><td class="mdescLeft"> </td><td class="mdescRight">Count the number of visual runs in the line. <a href="#ab04ab230f5a60e45416311deecbe290f">More...</a><br /></td></tr> <tr class="separator:ab04ab230f5a60e45416311deecbe290f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aba43a634d954754c39a394406f491cb1"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#aba43a634d954754c39a394406f491cb1">pl_getLineAscent</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr> <tr class="memdesc:aba43a634d954754c39a394406f491cb1"><td class="mdescLeft"> </td><td class="mdescRight">Get the ascent of the line. <a href="#aba43a634d954754c39a394406f491cb1">More...</a><br /></td></tr> <tr class="separator:aba43a634d954754c39a394406f491cb1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a811e06ac49f814c85e1e46a60a9f8ae2"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a811e06ac49f814c85e1e46a60a9f8ae2">pl_getLineDescent</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr> <tr class="memdesc:a811e06ac49f814c85e1e46a60a9f8ae2"><td class="mdescLeft"> </td><td class="mdescRight">Get the descent of the line. <a href="#a811e06ac49f814c85e1e46a60a9f8ae2">More...</a><br /></td></tr> <tr class="separator:a811e06ac49f814c85e1e46a60a9f8ae2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aedc3176b255cc9869c53543fe144a600"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#aedc3176b255cc9869c53543fe144a600">pl_getLineLeading</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr> <tr class="memdesc:aedc3176b255cc9869c53543fe144a600"><td class="mdescLeft"> </td><td class="mdescRight">Get the leading of the line. <a href="#aedc3176b255cc9869c53543fe144a600">More...</a><br /></td></tr> <tr class="separator:aedc3176b255cc9869c53543fe144a600"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9a6ed76f934db6f5c4c4576587585300"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a9a6ed76f934db6f5c4c4576587585300">pl_getLineWidth</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line)</td></tr> <tr class="memdesc:a9a6ed76f934db6f5c4c4576587585300"><td class="mdescLeft"> </td><td class="mdescRight">Get the width of the line. <a href="#a9a6ed76f934db6f5c4c4576587585300">More...</a><br /></td></tr> <tr class="separator:a9a6ed76f934db6f5c4c4576587585300"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab024a4df5031ed6d0093ae95dc7c898d"><td class="memItemLeft" align="right" valign="top">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#ab024a4df5031ed6d0093ae95dc7c898d">pl_getLineVisualRun</a> (const <a class="el" href="playout_8h.html#aa0299717d429526413f527ecb3627d82">pl_line</a> *line, le_int32 runIndex)</td></tr> <tr class="memdesc:ab024a4df5031ed6d0093ae95dc7c898d"><td class="mdescLeft"> </td><td class="mdescRight">Get a <code>ParagraphLayout::VisualRun</code> object for a given visual run in the line. <a href="#ab024a4df5031ed6d0093ae95dc7c898d">More...</a><br /></td></tr> <tr class="separator:ab024a4df5031ed6d0093ae95dc7c898d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afe16471321543e7bc6a131860226e6be"><td class="memItemLeft" align="right" valign="top">const le_font * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#afe16471321543e7bc6a131860226e6be">pl_getVisualRunFont</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr> <tr class="memdesc:afe16471321543e7bc6a131860226e6be"><td class="mdescLeft"> </td><td class="mdescRight">Get the <code>le_font</code> object which represents the font of the visual run. <a href="#afe16471321543e7bc6a131860226e6be">More...</a><br /></td></tr> <tr class="separator:afe16471321543e7bc6a131860226e6be"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afaa30e93bacb05bfda79cedf07c526e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102">UBiDiDirection</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#afaa30e93bacb05bfda79cedf07c526e9">pl_getVisualRunDirection</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr> <tr class="memdesc:afaa30e93bacb05bfda79cedf07c526e9"><td class="mdescLeft"> </td><td class="mdescRight">Get the direction of the visual run. <a href="#afaa30e93bacb05bfda79cedf07c526e9">More...</a><br /></td></tr> <tr class="separator:afaa30e93bacb05bfda79cedf07c526e9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac54dfb21ae665198a9b2f07a6f410678"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ac54dfb21ae665198a9b2f07a6f410678">pl_getVisualRunGlyphCount</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr> <tr class="memdesc:ac54dfb21ae665198a9b2f07a6f410678"><td class="mdescLeft"> </td><td class="mdescRight">Get the number of glyphs in the visual run. <a href="#ac54dfb21ae665198a9b2f07a6f410678">More...</a><br /></td></tr> <tr class="separator:ac54dfb21ae665198a9b2f07a6f410678"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a15e2cf7dec87ffa3053b30caef690810"><td class="memItemLeft" align="right" valign="top">const LEGlyphID * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a15e2cf7dec87ffa3053b30caef690810">pl_getVisualRunGlyphs</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr> <tr class="memdesc:a15e2cf7dec87ffa3053b30caef690810"><td class="mdescLeft"> </td><td class="mdescRight">Get the glyphs in the visual run. <a href="#a15e2cf7dec87ffa3053b30caef690810">More...</a><br /></td></tr> <tr class="separator:a15e2cf7dec87ffa3053b30caef690810"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa00ee1dc95e46c926932ed9542d7e770"><td class="memItemLeft" align="right" valign="top">const float * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#aa00ee1dc95e46c926932ed9542d7e770">pl_getVisualRunPositions</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr> <tr class="memdesc:aa00ee1dc95e46c926932ed9542d7e770"><td class="mdescLeft"> </td><td class="mdescRight">Get the (x, y) positions of the glyphs in the visual run. <a href="#aa00ee1dc95e46c926932ed9542d7e770">More...</a><br /></td></tr> <tr class="separator:aa00ee1dc95e46c926932ed9542d7e770"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac37b522b9755fbe1771e90c36cf34946"><td class="memItemLeft" align="right" valign="top">const le_int32 * </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#ac37b522b9755fbe1771e90c36cf34946">pl_getVisualRunGlyphToCharMap</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr> <tr class="memdesc:ac37b522b9755fbe1771e90c36cf34946"><td class="mdescLeft"> </td><td class="mdescRight">Get the glyph-to-character map for this visual run. <a href="#ac37b522b9755fbe1771e90c36cf34946">More...</a><br /></td></tr> <tr class="separator:ac37b522b9755fbe1771e90c36cf34946"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a16872ad2ccab8c3f410355b881bb6bbd"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a16872ad2ccab8c3f410355b881bb6bbd">pl_getVisualRunAscent</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr> <tr class="memdesc:a16872ad2ccab8c3f410355b881bb6bbd"><td class="mdescLeft"> </td><td class="mdescRight">A convenience method which returns the ascent value for the font associated with this run. <a href="#a16872ad2ccab8c3f410355b881bb6bbd">More...</a><br /></td></tr> <tr class="separator:a16872ad2ccab8c3f410355b881bb6bbd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0470a240eec7407d7ee691b67417e89d"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#a0470a240eec7407d7ee691b67417e89d">pl_getVisualRunDescent</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr> <tr class="memdesc:a0470a240eec7407d7ee691b67417e89d"><td class="mdescLeft"> </td><td class="mdescRight">A convenience method which returns the descent value for the font associated with this run. <a href="#a0470a240eec7407d7ee691b67417e89d">More...</a><br /></td></tr> <tr class="separator:a0470a240eec7407d7ee691b67417e89d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af50f9e03efeee3382536ac4a7f73abbe"><td class="memItemLeft" align="right" valign="top">le_int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="playout_8h.html#af50f9e03efeee3382536ac4a7f73abbe">pl_getVisualRunLeading</a> (const <a class="el" href="playout_8h.html#a82426ed114f524fa6a398faea9901377">pl_visualRun</a> *run)</td></tr> <tr class="memdesc:af50f9e03efeee3382536ac4a7f73abbe"><td class="mdescLeft"> </td><td class="mdescRight">A convenience method which returns the leading value for the font associated with this run. <a href="#af50f9e03efeee3382536ac4a7f73abbe">More...</a><br /></td></tr> <tr class="separator:af50f9e03efeee3382536ac4a7f73abbe"><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>Definition in file <a class="el" href="playout_8h_source.html">playout.h</a>.</p> </div><h2 class="groupheader">Typedef Documentation</h2> <a class="anchor" id="aa0299717d429526413f527ecb3627d82"></a> <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#_internal000497">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> <p>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 class="anchor" id="a1906d8b1227129a7717a45b98eb47e20"></a> <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#_internal000496">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> <p>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 class="anchor" id="a82426ed114f524fa6a398faea9901377"></a> <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#_internal000498">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> <p>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 class="anchor" id="a90e50608ad6e47f5a83c1ec0611a025c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000500">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="a3853bf7172907c3751025f5c9231ce50"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000509">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="ab04ab230f5a60e45416311deecbe290f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000510">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="a4195eb2ddfa32c7219ebaed3d4875122"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><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 Unicde 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 determind 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#_internal000499">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="a60b7db040812caf999affa47a64c8654"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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>Get 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> <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#_internal000504">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="acb99fd0b7613a1b70ef15607cc17503f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000505">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="ad29d243c96551da13e46dea7762be767"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000506">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="aba43a634d954754c39a394406f491cb1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000511">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="a811e06ac49f814c85e1e46a60a9f8ae2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000512">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="aedc3176b255cc9869c53543fe144a600"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000513">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="ab024a4df5031ed6d0093ae95dc7c898d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000515">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="a9a6ed76f934db6f5c4c4576587585300"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000514">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="a5ee8d68a8f564eff4b8f0bd42fb35d99"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><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#_internal000502">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="add47cbf4a408161d9c7ac2aba113dc0e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><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#_internal000503">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="a16872ad2ccab8c3f410355b881bb6bbd"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000522">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="a0470a240eec7407d7ee691b67417e89d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000523">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="afaa30e93bacb05bfda79cedf07c526e9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><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#_internal000517">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="afe16471321543e7bc6a131860226e6be"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000516">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="ac54dfb21ae665198a9b2f07a6f410678"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000518">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="a15e2cf7dec87ffa3053b30caef690810"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000519">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="ac37b522b9755fbe1771e90c36cf34946"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000521">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="af50f9e03efeee3382536ac4a7f73abbe"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000524">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="aa00ee1dc95e46c926932ed9542d7e770"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000520">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="a816f537e2657d704050ff520b87a6d4b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000501">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="ab3b43c93c0f7012eb6cc1cfd59fb9f82"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><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#_internal000508">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl> </div> </div> <a class="anchor" id="a89b26f7697f7c793171572c3c27e6097"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">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#_internal000507">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.11 </small></address> </body> </html>