Sophie

Sophie

distrib > * > cooker > x86_64 > by-pkgid > 5674b83e4098065ec8ee4138eac12e58 > files > 514

lib64gigi-devel-0.8.0-8.1074.1.x86_64.rpm

<!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"/>
<title>GG: GG::Font Class 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 style="padding-left: 0.5em;">
   <div id="projectname">GG
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceGG.html">GG</a></li><li class="navelem"><a class="el" href="classGG_1_1Font.html">Font</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">GG::Font Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="Font_8h_source.html">Font.h</a>&gt;</code></p>

<p><a href="classGG_1_1Font-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structGG_1_1Font_1_1FormattingTag.html">FormattingTag</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of <a class="el" href="structGG_1_1Font_1_1TextElement.html" title="Used to encapsulate a token-like piece of text to be rendered using GG::Font.">TextElement</a> that represents a text formatting tag.  <a href="structGG_1_1Font_1_1FormattingTag.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the essential data on each line that a string occupies when rendered with given format flags.  <a href="structGG_1_1Font_1_1LineData.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structGG_1_1Font_1_1RenderState.html">RenderState</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the state of tags during rendering of text.  <a href="structGG_1_1Font_1_1RenderState.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font_1_1Substring.html">Substring</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A range of iterators into a std::string that defines a substring found in a string being rendered by <a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">Font</a>.  <a href="classGG_1_1Font_1_1Substring.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structGG_1_1Font_1_1TextElement.html">TextElement</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to encapsulate a token-like piece of text to be rendered using <a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">GG::Font</a>.  <a href="structGG_1_1Font_1_1TextElement.html#details">More...</a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a9d5c8b92978315b040b784fcd2443b96"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a9d5c8b92978315b040b784fcd2443b96">RegisterKnownTag</a> (const std::string &amp;tag)</td></tr>
<tr class="memitem:af70e431afd1e862abdeeb592487eae0a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#af70e431afd1e862abdeeb592487eae0a">RemoveKnownTag</a> (const std::string &amp;tag)</td></tr>
<tr class="memitem:a4cbce3a3872f2e0dbcbc6599840f0d2c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a4cbce3a3872f2e0dbcbc6599840f0d2c">ClearKnownTags</a> ()</td></tr>
<tr class="memitem:a814b5f4cb8a73cd074d1d8d72c3a9294"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a814b5f4cb8a73cd074d1d8d72c3a9294">ThrowBadGlyph</a> (const std::string &amp;format_str, boost::uint32_t c)</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Structors</h2></td></tr>
<tr class="memitem:ab151c130b87c76f3f9372f177ef53a68"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#ab151c130b87c76f3f9372f177ef53a68">Font</a> (const std::string &amp;font_filename, unsigned int pts)</td></tr>
<tr class="memitem:a153cb427f6c40d8b42c9ca8ce2b5d00c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a153cb427f6c40d8b42c9ca8ce2b5d00c">Font</a> (const std::string &amp;font_filename, unsigned int pts, const std::vector&lt; unsigned char &gt; &amp;file_contents)</td></tr>
<tr class="memitem:a9e595e72c0b24c5af03716b086d74ae2"><td class="memTemplParams" colspan="2">template&lt;class CharSetIter &gt; </td></tr>
<tr class="memitem:a9e595e72c0b24c5af03716b086d74ae2"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a9e595e72c0b24c5af03716b086d74ae2">Font</a> (const std::string &amp;font_filename, unsigned int pts, CharSetIter first, CharSetIter last)</td></tr>
<tr class="memitem:aca1c9ff37a2ef27f2988f39a646b2178"><td class="memTemplParams" colspan="2">template&lt;class CharSetIter &gt; </td></tr>
<tr class="memitem:aca1c9ff37a2ef27f2988f39a646b2178"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#aca1c9ff37a2ef27f2988f39a646b2178">Font</a> (const std::string &amp;font_filename, unsigned int pts, const std::vector&lt; unsigned char &gt; &amp;file_contents, CharSetIter first, CharSetIter last)</td></tr>
<tr class="memitem:a44f3b1deaaf87235aba4a4d9eeca5f37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a44f3b1deaaf87235aba4a4d9eeca5f37"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a44f3b1deaaf87235aba4a4d9eeca5f37">~Font</a> ()</td></tr>
<tr class="memitem:a94fc480b0216b0ffdc560636f9f76e5a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94fc480b0216b0ffdc560636f9f76e5a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a94fc480b0216b0ffdc560636f9f76e5a">Font</a> ()</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Accessors</h2></td></tr>
<tr class="memitem:a630482e0b83b04bba7468ed10cdf3b35"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a630482e0b83b04bba7468ed10cdf3b35">FontName</a> () const </td></tr>
<tr class="memitem:ae8db902d59ea337adba3b5e120130575"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#ae8db902d59ea337adba3b5e120130575">PointSize</a> () const </td></tr>
<tr class="memitem:a8049127dd37dfc2fb37cdea6d45c69f8"><td class="memItemLeft" align="right" valign="top">const std::vector<br class="typebreak"/>
&lt; <a class="el" href="structGG_1_1UnicodeCharset.html">UnicodeCharset</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a8049127dd37dfc2fb37cdea6d45c69f8">UnicodeCharsets</a> () const </td></tr>
<tr class="memitem:a1cc1fa0a2a60c41ce7ecbe2173e0b9bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGG_1_1Y.html">Y</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a1cc1fa0a2a60c41ce7ecbe2173e0b9bb">Ascent</a> () const </td></tr>
<tr class="memitem:acaa8c214a8916b2c37a42063ae11d804"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGG_1_1Y.html">Y</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#acaa8c214a8916b2c37a42063ae11d804">Descent</a> () const </td></tr>
<tr class="memitem:a427ed8852f90e64c1b0897b88d81f4c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGG_1_1Y.html">Y</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a427ed8852f90e64c1b0897b88d81f4c3">Height</a> () const </td></tr>
<tr class="memitem:afe0b7a569d1f9d0c35c73826b2028488"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGG_1_1Y.html">Y</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#afe0b7a569d1f9d0c35c73826b2028488">Lineskip</a> () const </td></tr>
<tr class="memitem:a0e2c32be7236f403e03e6ce38e22b1a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGG_1_1X.html">X</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a0e2c32be7236f403e03e6ce38e22b1a9">SpaceWidth</a> () const </td></tr>
<tr class="memitem:ac69a1de307fd99e663398643b82295db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGG_1_1X.html">X</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#ac69a1de307fd99e663398643b82295db">RenderGlyph</a> (const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;pt, char c) const </td></tr>
<tr class="memitem:a460971ee48c6316566ce6540023db206"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGG_1_1X.html">X</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a460971ee48c6316566ce6540023db206">RenderGlyph</a> (const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;pt, boost::uint32_t c) const </td></tr>
<tr class="memitem:a90c37f655981d5646b127a33e8c0c8a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGG_1_1X.html">X</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a90c37f655981d5646b127a33e8c0c8a4">RenderText</a> (const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;pt, const std::string &amp;text) const </td></tr>
<tr class="memitem:a39abd41ce552321599d2eafdd03c1c60"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a39abd41ce552321599d2eafdd03c1c60">RenderText</a> (const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;pt1, const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;pt2, const std::string &amp;text, <a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt; &amp;format, const std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; *line_data=0, <a class="el" href="structGG_1_1Font_1_1RenderState.html">RenderState</a> *render_state=0) const </td></tr>
<tr class="memitem:a969c8f60b995699685fe0ae0f7870896"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a969c8f60b995699685fe0ae0f7870896">RenderText</a> (const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;pt1, const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;pt2, const std::string &amp;text, <a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt; &amp;format, const std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;line_data, <a class="el" href="structGG_1_1Font_1_1RenderState.html">RenderState</a> &amp;render_state, std::size_t begin_line, <a class="el" href="classGG_1_1CPSize.html">CPSize</a> begin_char, std::size_t end_line, <a class="el" href="classGG_1_1CPSize.html">CPSize</a> end_char) const </td></tr>
<tr class="memitem:a59075e2f0e09851f7c36af76a94300dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a59075e2f0e09851f7c36af76a94300dd">ProcessTagsBefore</a> (const std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;line_data, <a class="el" href="structGG_1_1Font_1_1RenderState.html">RenderState</a> &amp;render_state, std::size_t begin_line, <a class="el" href="classGG_1_1CPSize.html">CPSize</a> begin_char) const </td></tr>
<tr class="memitem:a188d4974e92e93bc77a8c00f08d61f6f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structGG_1_1Pt.html">Pt</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a188d4974e92e93bc77a8c00f08d61f6f">DetermineLines</a> (const std::string &amp;text, <a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt; &amp;format, <a class="el" href="classGG_1_1X.html">X</a> box_width, std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;line_data) const </td></tr>
<tr class="memitem:a76b3780dd42d8dca611dcf12be2ec5fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structGG_1_1Pt.html">Pt</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a76b3780dd42d8dca611dcf12be2ec5fb">DetermineLines</a> (const std::string &amp;text, <a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt; &amp;format, <a class="el" href="classGG_1_1X.html">X</a> box_width, std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;line_data, std::vector&lt; boost::shared_ptr&lt; <a class="el" href="structGG_1_1Font_1_1TextElement.html">TextElement</a> &gt; &gt; &amp;text_elements) const </td></tr>
<tr class="memitem:ac2a9cedcf06427e781fbaec43fb842c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structGG_1_1Pt.html">Pt</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#ac2a9cedcf06427e781fbaec43fb842c2">DetermineLines</a> (const std::string &amp;text, <a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt; &amp;format, <a class="el" href="classGG_1_1X.html">X</a> box_width, const std::vector&lt; boost::shared_ptr&lt; <a class="el" href="structGG_1_1Font_1_1TextElement.html">TextElement</a> &gt; &gt; &amp;text_elements, std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;line_data) const </td></tr>
<tr class="memitem:a5cd2c015fb39fb4a541fa0fb75023319"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structGG_1_1Pt.html">Pt</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a5cd2c015fb39fb4a541fa0fb75023319">TextExtent</a> (const std::string &amp;text, <a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt; format=<a class="el" href="namespaceGG.html#a952ea21db3c84bd8613de4c258e778db">FORMAT_NONE</a>, <a class="el" href="classGG_1_1X.html">X</a> box_width=X0) const </td></tr>
<tr class="memitem:ad73e52fe8dec3e426c222861a3a0dbce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structGG_1_1Pt.html">Pt</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#ad73e52fe8dec3e426c222861a3a0dbce">TextExtent</a> (const std::string &amp;text, const std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;line_data) const </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Exceptions</h2></td></tr>
<tr class="memitem:aabd6c051c0e22efbbcd44f2f2a061156"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#aabd6c051c0e22efbbcd44f2f2a061156">GG_ABSTRACT_EXCEPTION</a> (Exception)</td></tr>
<tr class="memitem:a6c16c5a99351dd84895b1606f47c28d5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a6c16c5a99351dd84895b1606f47c28d5">GG_CONCRETE_EXCEPTION</a> (BadFile, <a class="el" href="classGG_1_1Font.html">GG::Font</a>, Exception)</td></tr>
<tr class="memitem:ad171624e27a98930e39cc5830953b380"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#ad171624e27a98930e39cc5830953b380">GG_CONCRETE_EXCEPTION</a> (InvalidPointSize, <a class="el" href="classGG_1_1Font.html">GG::Font</a>, Exception)</td></tr>
<tr class="memitem:adecd4fbc1bed07fb4ecd482ae226af6c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#adecd4fbc1bed07fb4ecd482ae226af6c">GG_CONCRETE_EXCEPTION</a> (UnscalableFont, <a class="el" href="classGG_1_1Font.html">GG::Font</a>, Exception)</td></tr>
<tr class="memitem:a73aceda198abbaf8464c72da224fe35d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a73aceda198abbaf8464c72da224fe35d">GG_CONCRETE_EXCEPTION</a> (BadFace, <a class="el" href="classGG_1_1Font.html">GG::Font</a>, Exception)</td></tr>
<tr class="memitem:a2145d62f7623076c5990328331bc93ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a2145d62f7623076c5990328331bc93ad">GG_CONCRETE_EXCEPTION</a> (BadPointSize, <a class="el" href="classGG_1_1Font.html">GG::Font</a>, Exception)</td></tr>
<tr class="memitem:a6406c8d4e74ba31fd68791c3ca4124f6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGG_1_1Font.html#a6406c8d4e74ba31fd68791c3ca4124f6">GG_CONCRETE_EXCEPTION</a> (BadGlyph, <a class="el" href="classGG_1_1Font.html">GG::Font</a>, Exception)</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A bitmapped font rendering class. </p>
<p><a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">Font</a> creates one or more 16-bits-per-pixel OpenGL textures that contain rendered glyphs from a requested font file at the requested point size, including only the requested ranges of code points. Once the textures have been created, text is rendered to the display by rendering quads textured with portions of the glyph textures. The glyphs are rendered to the textures in white, with alpha blending used for antialiasing. The user should set the desired text color with a call to glColor*() before any call to <a class="el" href="classGG_1_1Font.html#a90c37f655981d5646b127a33e8c0c8a4">RenderText()</a>. When text is rendered, <a class="el" href="classGG_1_1Font.html#a188d4974e92e93bc77a8c00f08d61f6f">DetermineLines()</a> is called to determine where the line breaks are, so that text can be rendered centered, right-justified, or whatever. To cut down on this computation, when the text is not changing very rapidly (ie not every frame), <a class="el" href="classGG_1_1Font.html#a188d4974e92e93bc77a8c00f08d61f6f">DetermineLines()</a> can be called by the user once, and the result supplied to <a class="el" href="classGG_1_1Font.html#a90c37f655981d5646b127a33e8c0c8a4">RenderText()</a> repeatedly. When this is done, the iteration through the text to determine line breaks is not necessary at render time. The user is responsible for ensuring that the line data applies to the text string supplied to <a class="el" href="classGG_1_1Font.html#a90c37f655981d5646b127a33e8c0c8a4">RenderText()</a>. See <a class="el" href="UnicodeCharsets_8h.html" title="Contains the UnicodeCharsets class, and functions related to the character sets defined in the Unicod...">UnicodeCharsets.h</a> for the ranges of code points available, including a function that allow one to determine which ranges are necessary for rendering a certain string. Point sizes above 250 are not supported. Note that users should not normally need to use <a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">Font</a> directly. Users should instead use <a class="el" href="classGG_1_1TextControl.html" title="Displays a piece of text.">TextControl</a>, <a class="el" href="classGG_1_1Edit.html" title="This is a single-line edit box control.">Edit</a>, or <a class="el" href="classGG_1_1MultiEdit.html" title="This is a multi-line text input and display control.">MultiEdit</a>.</p>
<h3>Text Formatting Tags</h3>
<p><a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">GG::Font</a> supports a few text formatting tags for convenience. These tags are similar to HTML or XML tags; there is an opening version "&lt;tag&gt;" and a closing version "&lt;/tag&gt;" of each tag. Tags can be nested. For instance, consider the use of the italics tag &lt;i&gt; here:</p>
<pre class="fragment">      &lt;i&gt;some text &lt;i&gt;and &lt;/i&gt;some more &lt;/i&gt;text </pre><p>In this example, everything is italicized except for "text". Each &lt;i&gt; tag establishes that italics should be used for all further text until the next <em>matching</em> &lt;/i&gt; tag. The first &lt;i&gt; tag matches the second &lt;/i&gt; tag, and the two inner tags are matched. Note that unmatched close-tags (e.g. &lt;/i&gt;) are ignored by the text parser <a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">Font</a> uses to find tags &ndash; they will appear as regular text. The text justification tags are used on a per-line basis, since it makes no sense to, for instance, right-justify only a part of a line and center the rest. When more than one justification tag appears on a line, the last one is used. A justification close-tag indicates that a line is to be the last one with that justification, and only applies if that justification is active.</p>
<p><br/>
The supported tags are:</p>
<ul>
<li><pre class="fragment">&lt;i&gt;&lt;/i&gt; </pre> Italics</li>
<li><pre class="fragment">&lt;u&gt;&lt;/u&gt; </pre> Underline</li>
<li><pre class="fragment">&lt;rgba r g b a&gt;&lt;/rgba&gt; </pre> Color. Sets current rendering color to that specified by parameters. Parameters may be either floating point values in the range [0.0, 1.0], or integer values in the range [0, 255]. All parameters must be in one format or the other. The &lt;/rgba&gt; tag restores the previously set &lt;rgba&gt; color, or restores the default color used to render the text when there are no other &lt;rgba&gt; tags in effect. Example tag: &lt;rgba 0.4 0.5 0.6 0.7&gt;.</li>
<li><pre class="fragment">&lt;left&gt;&lt;/left&gt; </pre> Left-justified text.</li>
<li><pre class="fragment">&lt;center&gt;&lt;/center&gt; </pre> Centered text.</li>
<li><pre class="fragment">&lt;right&gt;&lt;/right&gt; </pre> Right-justified text.</li>
<li><pre class="fragment">&lt;pre&gt;&lt;/pre&gt; </pre> Preformatted. Similar to HTML &lt;pre&gt; tag, except this one only causes all tags to be ignored until a subsequent &lt;/pre&gt; tag is seen. Note that due to their semantics, &lt;pre&gt; tags cannot be nested.</li>
</ul>
<p>Users of <a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">Font</a> may wish to create their own tags as well. Though <a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">Font</a> will know nothing about the semantics of the new tags, it is possible to let <a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">Font</a> know about them, in order for <a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">Font</a> to render them invisible as it does with the tags listed above. See the static methods <a class="el" href="classGG_1_1Font.html#a9d5c8b92978315b040b784fcd2443b96">RegisterKnownTag()</a>, <a class="el" href="classGG_1_1Font.html#af70e431afd1e862abdeeb592487eae0a">RemoveKnownTag()</a>, and <a class="el" href="classGG_1_1Font.html#a4cbce3a3872f2e0dbcbc6599840f0d2c">ClearKnownTags()</a> for details. It is not possible to remove the built-in tags using these methods. If you wish not to use tags at all, call <a class="el" href="classGG_1_1Font.html#a188d4974e92e93bc77a8c00f08d61f6f">DetermineLines()</a> and <a class="el" href="classGG_1_1Font.html#a90c37f655981d5646b127a33e8c0c8a4">RenderText()</a> with the format parameter containing FORMAT_IGNORETAGS, or include a &lt;pre&gt; tag at the beginning of the text to be rendered. </p>

<p>Definition at line <a class="el" href="Font_8h_source.html#l00122">122</a> of file <a class="el" href="Font_8h_source.html">Font.h</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab151c130b87c76f3f9372f177ef53a68"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GG::Font::Font </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>font_filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pts</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Ctor. Construct a font using only the printable ASCII characters. </p>
<dl class="exception"><dt>Exceptions:</dt><dd>
  <table class="exception">
    <tr><td class="paramname">Font::Exception</td><td>Throws a subclass of Font::Exception if the condition specified for the subclass is met. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a153cb427f6c40d8b42c9ca8ce2b5d00c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GG::Font::Font </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>font_filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; unsigned char &gt; &amp;&#160;</td>
          <td class="paramname"><em>file_contents</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Ctor. Construct a font using only the printable ASCII characters, from the in-memory contents <em>file_contents</em>. </p>
<dl class="exception"><dt>Exceptions:</dt><dd>
  <table class="exception">
    <tr><td class="paramname">Font::Exception</td><td>Throws a subclass of Font::Exception if the condition specified for the subclass is met. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9e595e72c0b24c5af03716b086d74ae2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharSetIter &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">GG::Font::Font </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>font_filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CharSetIter&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CharSetIter&#160;</td>
          <td class="paramname"><em>last</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Ctor. Construct a font using all the code points in the UnicodeCharsets in the range [first, last). </p>
<dl class="exception"><dt>Exceptions:</dt><dd>
  <table class="exception">
    <tr><td class="paramname">Font::Exception</td><td>Throws a subclass of Font::Exception if the condition specified for the subclass is met. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Font_8h_source.html#l00708">708</a> of file <a class="el" href="Font_8h_source.html">Font.h</a>.</p>

</div>
</div>
<a class="anchor" id="aca1c9ff37a2ef27f2988f39a646b2178"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharSetIter &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">GG::Font::Font </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>font_filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; unsigned char &gt; &amp;&#160;</td>
          <td class="paramname"><em>file_contents</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CharSetIter&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CharSetIter&#160;</td>
          <td class="paramname"><em>last</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Ctor. Construct a font using all the code points in the UnicodeCharsets in the range [first, last), from the in-memory contents <em>file_contents</em>. </p>
<dl class="exception"><dt>Exceptions:</dt><dd>
  <table class="exception">
    <tr><td class="paramname">Font::Exception</td><td>Throws a subclass of Font::Exception if the condition specified for the subclass is met. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Font_8h_source.html#l00731">731</a> of file <a class="el" href="Font_8h_source.html">Font.h</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a630482e0b83b04bba7468ed10cdf3b35"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::string&amp; GG::Font::FontName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the name of the file from which this font was created. </p>

</div>
</div>
<a class="anchor" id="ae8db902d59ea337adba3b5e120130575"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int GG::Font::PointSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the point size in which the characters in the font object are rendered. </p>

</div>
</div>
<a class="anchor" id="a8049127dd37dfc2fb37cdea6d45c69f8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt;<a class="el" href="structGG_1_1UnicodeCharset.html">UnicodeCharset</a>&gt;&amp; GG::Font::UnicodeCharsets </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the range(s) of code points rendered in the font </p>

</div>
</div>
<a class="anchor" id="a1cc1fa0a2a60c41ce7ecbe2173e0b9bb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classGG_1_1Y.html">Y</a> GG::Font::Ascent </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the maximum amount above the baseline the text can go. </p>

</div>
</div>
<a class="anchor" id="acaa8c214a8916b2c37a42063ae11d804"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classGG_1_1Y.html">Y</a> GG::Font::Descent </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the maximum amount below the baseline the text can go. </p>

</div>
</div>
<a class="anchor" id="a427ed8852f90e64c1b0897b88d81f4c3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classGG_1_1Y.html">Y</a> GG::Font::Height </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns (<a class="el" href="classGG_1_1Font.html#a1cc1fa0a2a60c41ce7ecbe2173e0b9bb">Ascent()</a> - <a class="el" href="classGG_1_1Font.html#acaa8c214a8916b2c37a42063ae11d804">Descent()</a>). </p>

</div>
</div>
<a class="anchor" id="afe0b7a569d1f9d0c35c73826b2028488"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classGG_1_1Y.html">Y</a> GG::Font::Lineskip </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the distance that should be placed between lines. This is usually not equal to <a class="el" href="classGG_1_1Font.html#a427ed8852f90e64c1b0897b88d81f4c3">Height()</a>. </p>

</div>
</div>
<a class="anchor" id="a0e2c32be7236f403e03e6ce38e22b1a9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classGG_1_1X.html">X</a> GG::Font::SpaceWidth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the width of the glyph for the space character. </p>

</div>
</div>
<a class="anchor" id="ac69a1de307fd99e663398643b82295db"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classGG_1_1X.html">X</a> GG::Font::RenderGlyph </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;&#160;</td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Renders glyph for <em>c</em> and returns advance of glyph rendered. </p>
<dl class="section note"><dt>Note:</dt><dd>Just as with most string parameters throughout <a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a>, <em>c</em> must be a valid UTF-8 sequence. </dd></dl>

</div>
</div>
<a class="anchor" id="a460971ee48c6316566ce6540023db206"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classGG_1_1X.html">X</a> GG::Font::RenderGlyph </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;&#160;</td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">boost::uint32_t&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Renders glyph for <em>c</em> and returns advance of glyph rendered. </p>

</div>
</div>
<a class="anchor" id="a90c37f655981d5646b127a33e8c0c8a4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classGG_1_1X.html">X</a> GG::Font::RenderText </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;&#160;</td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Unformatted text rendering; repeatedly calls RenderGlyph, then returns advance of entire string. </p>

</div>
</div>
<a class="anchor" id="a39abd41ce552321599d2eafdd03c1c60"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GG::Font::RenderText </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;&#160;</td>
          <td class="paramname"><em>pt1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;&#160;</td>
          <td class="paramname"><em>pt2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt; &amp;&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; *&#160;</td>
          <td class="paramname"><em>line_data</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structGG_1_1Font_1_1RenderState.html">RenderState</a> *&#160;</td>
          <td class="paramname"><em>render_state</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Formatted text rendering. </p>

</div>
</div>
<a class="anchor" id="a969c8f60b995699685fe0ae0f7870896"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GG::Font::RenderText </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;&#160;</td>
          <td class="paramname"><em>pt1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structGG_1_1Pt.html">Pt</a> &amp;&#160;</td>
          <td class="paramname"><em>pt2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt; &amp;&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>line_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structGG_1_1Font_1_1RenderState.html">RenderState</a> &amp;&#160;</td>
          <td class="paramname"><em>render_state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>begin_line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1CPSize.html">CPSize</a>&#160;</td>
          <td class="paramname"><em>begin_char</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>end_line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1CPSize.html">CPSize</a>&#160;</td>
          <td class="paramname"><em>end_char</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Formatted text rendering over a subset of lines and code points. The glyphs rendered are in the range [CodePointIndexOf(<em>begin_line</em>, <em>begin_char</em>, <em>line_data</em>), CodePointIndexOf(<em>end_line</em> - 1, <em>end_char</em>, <em>line_data</em>)). </p>

</div>
</div>
<a class="anchor" id="a59075e2f0e09851f7c36af76a94300dd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GG::Font::ProcessTagsBefore </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>line_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structGG_1_1Font_1_1RenderState.html">RenderState</a> &amp;&#160;</td>
          <td class="paramname"><em>render_state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>begin_line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1CPSize.html">CPSize</a>&#160;</td>
          <td class="paramname"><em>begin_char</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets <em>render_state</em> as if all the text before (<em>begin_line</em>, <em>begin_char</em>) had just been rendered. </p>

</div>
</div>
<a class="anchor" id="a188d4974e92e93bc77a8c00f08d61f6f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structGG_1_1Pt.html">Pt</a> GG::Font::DetermineLines </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt; &amp;&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1X.html">X</a>&#160;</td>
          <td class="paramname"><em>box_width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>line_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the maximum dimensions of the string in x and y, and populates <em>line_data</em>. </p>

</div>
</div>
<a class="anchor" id="a76b3780dd42d8dca611dcf12be2ec5fb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structGG_1_1Pt.html">Pt</a> GG::Font::DetermineLines </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt; &amp;&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1X.html">X</a>&#160;</td>
          <td class="paramname"><em>box_width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>line_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; boost::shared_ptr&lt; <a class="el" href="structGG_1_1Font_1_1TextElement.html">TextElement</a> &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>text_elements</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the maximum dimensions of the string in x and y, and populates <em>line_data</em> and <em>text_elements</em>. Note that <em>text_elements</em> must be empty. </p>

</div>
</div>
<a class="anchor" id="ac2a9cedcf06427e781fbaec43fb842c2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structGG_1_1Pt.html">Pt</a> GG::Font::DetermineLines </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt; &amp;&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1X.html">X</a>&#160;</td>
          <td class="paramname"><em>box_width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; boost::shared_ptr&lt; <a class="el" href="structGG_1_1Font_1_1TextElement.html">TextElement</a> &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>text_elements</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>line_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the maximum dimensions of the string in x and y, and populates <em>line_data</em>. The contents of <em>text_elements</em> will be used, and the equivalent work done by <a class="el" href="classGG_1_1Font.html#a188d4974e92e93bc77a8c00f08d61f6f">DetermineLines()</a> will be skipped. Supplying a <em>text</em> and a <em>text_elements</em> that are incompatible will result in undefined behavior. </p>

</div>
</div>
<a class="anchor" id="a5cd2c015fb39fb4a541fa0fb75023319"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structGG_1_1Pt.html">Pt</a> GG::Font::TextExtent </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Flags.html">Flags</a>&lt; TextFormat &gt;&#160;</td>
          <td class="paramname"><em>format</em> = <code><a class="el" href="namespaceGG.html#a952ea21db3c84bd8613de4c258e778db">FORMAT_NONE</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1X.html">X</a>&#160;</td>
          <td class="paramname"><em>box_width</em> = <code>X0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the maximum dimensions of the string in x and y. Provided as a convenience; it just calls DetermineLines with the given parameters. </p>

</div>
</div>
<a class="anchor" id="ad73e52fe8dec3e426c222861a3a0dbce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structGG_1_1Pt.html">Pt</a> GG::Font::TextExtent </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="structGG_1_1Font_1_1LineData.html">LineData</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>line_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the maximum dimensions of the text in x and y. </p>

</div>
</div>
<a class="anchor" id="a9d5c8b92978315b040b784fcd2443b96"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void GG::Font::RegisterKnownTag </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>tag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Adds <em>tag</em> to the list of embedded tags that <a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">Font</a> should not print when rendering text. Passing "foo" will cause <a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">Font</a> to treat "&lt;foo&gt;", "&lt;foo [arg1 [arg2 ...]]&gt;", and "&lt;/foo&gt;" as tags. </p>

</div>
</div>
<a class="anchor" id="af70e431afd1e862abdeeb592487eae0a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void GG::Font::RemoveKnownTag </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>tag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Removes <em>tag</em> from the known tag list. Does not remove the built in tags: &lt;i&gt;, &lt;u&gt;, &lt;rgba r g b a&gt;, and &lt;pre&gt;. </p>

</div>
</div>
<a class="anchor" id="a4cbce3a3872f2e0dbcbc6599840f0d2c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void GG::Font::ClearKnownTags </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Removes all tags from the known tag list. Does not remove the built in tags: &lt;i&gt;, &lt;u&gt;, &lt;rgba r g b a&gt;, and &lt;pre&gt;. </p>

</div>
</div>
<a class="anchor" id="aabd6c051c0e22efbbcd44f2f2a061156"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GG::Font::GG_ABSTRACT_EXCEPTION </td>
          <td>(</td>
          <td class="paramtype">Exception&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The base class for <a class="el" href="classGG_1_1Font.html" title="A bitmapped font rendering class.">Font</a> exceptions. </p>

</div>
</div>
<a class="anchor" id="a6c16c5a99351dd84895b1606f47c28d5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GG::Font::GG_CONCRETE_EXCEPTION </td>
          <td>(</td>
          <td class="paramtype">BadFile&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Font.html">GG::Font</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Exception&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Thrown when valid font data cannot be read from a file. </p>

</div>
</div>
<a class="anchor" id="ad171624e27a98930e39cc5830953b380"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GG::Font::GG_CONCRETE_EXCEPTION </td>
          <td>(</td>
          <td class="paramtype">InvalidPointSize&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Font.html">GG::Font</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Exception&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Thrown when a 0 font size is requested. </p>

</div>
</div>
<a class="anchor" id="adecd4fbc1bed07fb4ecd482ae226af6c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GG::Font::GG_CONCRETE_EXCEPTION </td>
          <td>(</td>
          <td class="paramtype">UnscalableFont&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Font.html">GG::Font</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Exception&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Thrown when a FreeType font could be loaded, but the resulting font is not scalable, making it unusable by <a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a>. </p>

</div>
</div>
<a class="anchor" id="a73aceda198abbaf8464c72da224fe35d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GG::Font::GG_CONCRETE_EXCEPTION </td>
          <td>(</td>
          <td class="paramtype">BadFace&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Font.html">GG::Font</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Exception&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Thrown when an attempt is made to create a glyph from null font face object. </p>

</div>
</div>
<a class="anchor" id="a2145d62f7623076c5990328331bc93ad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GG::Font::GG_CONCRETE_EXCEPTION </td>
          <td>(</td>
          <td class="paramtype">BadPointSize&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Font.html">GG::Font</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Exception&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Thrown when an attempt to set the size of a FreeType font face fails. </p>

</div>
</div>
<a class="anchor" id="a6406c8d4e74ba31fd68791c3ca4124f6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GG::Font::GG_CONCRETE_EXCEPTION </td>
          <td>(</td>
          <td class="paramtype">BadGlyph&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGG_1_1Font.html">GG::Font</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Exception&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Thrown when FreeType is unable to fulfill a request to load or render a glpyh. </p>

</div>
</div>
<a class="anchor" id="a814b5f4cb8a73cd074d1d8d72c3a9294"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void GG::Font::ThrowBadGlyph </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>format_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">boost::uint32_t&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Throws a BadGlyph exception, with <em>c</em> converted to a printable ASCII character (if possible), or as a Unicode code point. <em>format_str</em> should contain the Boost.Format positional notation formatting tag "%1%" where the code point should appear. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="Font_8h_source.html">Font.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Jun 15 2012 15:13:31 for GG by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1
</small></address>
</body>
</html>