Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-release > by-pkgid > 2a9a0500ba8dfb95025148f22d49b751 > files > 61

lib64caca-devel-0.99-0.beta18.13.mga6.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
    <title>libcaca documentation</title>
    <link href="doxygen.css" rel="stylesheet" type="text/css">
  </head>
  <body>
<!-- Generated by Doxygen 1.8.11 -->
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">libcaca bitmap font handling</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaac9551a53a284e9a17e4e67d6400fbf0"><td class="memItemLeft" align="right" valign="top">__extern <a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__font.html#gaac9551a53a284e9a17e4e67d6400fbf0">caca_load_font</a> (void const *, size_t)</td></tr>
<tr class="memdesc:gaac9551a53a284e9a17e4e67d6400fbf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a font from memory for future use.  <a href="#gaac9551a53a284e9a17e4e67d6400fbf0">More...</a><br /></td></tr>
<tr class="separator:gaac9551a53a284e9a17e4e67d6400fbf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac5329825d3dbadf2d004ff90d808f15f"><td class="memItemLeft" align="right" valign="top">__extern char const *const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__font.html#gac5329825d3dbadf2d004ff90d808f15f">caca_get_font_list</a> (void)</td></tr>
<tr class="memdesc:gac5329825d3dbadf2d004ff90d808f15f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get available builtin fonts.  <a href="#gac5329825d3dbadf2d004ff90d808f15f">More...</a><br /></td></tr>
<tr class="separator:gac5329825d3dbadf2d004ff90d808f15f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0580a5e28afd8ec5a82bc49b32d4c040"><td class="memItemLeft" align="right" valign="top">__extern int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__font.html#ga0580a5e28afd8ec5a82bc49b32d4c040">caca_get_font_width</a> (<a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> const *)</td></tr>
<tr class="memdesc:ga0580a5e28afd8ec5a82bc49b32d4c040"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a font's standard glyph width.  <a href="#ga0580a5e28afd8ec5a82bc49b32d4c040">More...</a><br /></td></tr>
<tr class="separator:ga0580a5e28afd8ec5a82bc49b32d4c040"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea47dfd5abc7224d5030fdf3961e7377"><td class="memItemLeft" align="right" valign="top">__extern int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__font.html#gaea47dfd5abc7224d5030fdf3961e7377">caca_get_font_height</a> (<a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> const *)</td></tr>
<tr class="memdesc:gaea47dfd5abc7224d5030fdf3961e7377"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a font's standard glyph height.  <a href="#gaea47dfd5abc7224d5030fdf3961e7377">More...</a><br /></td></tr>
<tr class="separator:gaea47dfd5abc7224d5030fdf3961e7377"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab6ce2db91a640fb8214e2dd37016756f"><td class="memItemLeft" align="right" valign="top">__extern uint32_t const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__font.html#gab6ce2db91a640fb8214e2dd37016756f">caca_get_font_blocks</a> (<a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> const *)</td></tr>
<tr class="memdesc:gab6ce2db91a640fb8214e2dd37016756f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a font's list of supported glyphs.  <a href="#gab6ce2db91a640fb8214e2dd37016756f">More...</a><br /></td></tr>
<tr class="separator:gab6ce2db91a640fb8214e2dd37016756f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga64f055de5dd43137d099aa30e56a5dd6"><td class="memItemLeft" align="right" valign="top">__extern int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__font.html#ga64f055de5dd43137d099aa30e56a5dd6">caca_render_canvas</a> (<a class="el" href="caca_8h.html#aae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> const *, <a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> const *, void *, int, int, int)</td></tr>
<tr class="memdesc:ga64f055de5dd43137d099aa30e56a5dd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render the canvas onto an image buffer.  <a href="#ga64f055de5dd43137d099aa30e56a5dd6">More...</a><br /></td></tr>
<tr class="separator:ga64f055de5dd43137d099aa30e56a5dd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4c4277906b727073789c570f9f1c47d"><td class="memItemLeft" align="right" valign="top">__extern int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__font.html#gad4c4277906b727073789c570f9f1c47d">caca_free_font</a> (<a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> *)</td></tr>
<tr class="memdesc:gad4c4277906b727073789c570f9f1c47d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a font structure.  <a href="#gad4c4277906b727073789c570f9f1c47d">More...</a><br /></td></tr>
<tr class="separator:gad4c4277906b727073789c570f9f1c47d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>These functions provide bitmap font handling routines and high quality canvas to bitmap rendering. </p>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaac9551a53a284e9a17e4e67d6400fbf0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern <a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a>* caca_load_font </td>
          <td>(</td>
          <td class="paramtype">void const *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function loads a font and returns a handle to its internal structure. The handle can then be used with <a class="el" href="group__caca__font.html#ga64f055de5dd43137d099aa30e56a5dd6" title="Render the canvas onto an image buffer. ">caca_render_canvas()</a> for bitmap output.</p>
<p>Internal fonts can also be loaded: if <code>size</code> is set to 0, <code>data</code> must be a string containing the internal font name.</p>
<p>If <code>size</code> is non-zero, the <code>size</code> bytes of memory at address <code>data</code> are loaded as a font. This memory are must not be freed by the calling program until the font handle has been freed with <a class="el" href="group__caca__font.html#gad4c4277906b727073789c570f9f1c47d" title="Free a font structure. ">caca_free_font()</a>.</p>
<p>If an error occurs, NULL is returned and <b>errno</b> is set accordingly:</p><ul>
<li><code>ENOENT</code> Requested built-in font does not exist.</li>
<li><code>EINVAL</code> Invalid font data in memory area.</li>
<li><code>ENOMEM</code> Not enough memory to allocate font structure.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>The memory area containing the font or its name. </td></tr>
    <tr><td class="paramname">size</td><td>The size of the memory area, or 0 if the font name is given. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A font handle or NULL in case of error. </dd></dl>

<p>Referenced by <a class="el" href="group__caca__importexport.html#ga264bcf9f821d67f33bd5ee5aa5e048a0">caca_get_export_list()</a>, and <a class="el" href="group__caca__font.html#ga64f055de5dd43137d099aa30e56a5dd6">caca_render_canvas()</a>.</p>

</div>
</div>
<a class="anchor" id="gac5329825d3dbadf2d004ff90d808f15f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern char const* const* caca_get_font_list </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return a list of available builtin fonts. The list is a NULL-terminated array of strings.</p>
<p>This function never fails.</p>
<dl class="section return"><dt>Returns</dt><dd>An array of strings. </dd></dl>

<p>Referenced by <a class="el" href="group__caca__importexport.html#ga264bcf9f821d67f33bd5ee5aa5e048a0">caca_get_export_list()</a>, and <a class="el" href="group__caca__font.html#ga64f055de5dd43137d099aa30e56a5dd6">caca_render_canvas()</a>.</p>

</div>
</div>
<a class="anchor" id="ga0580a5e28afd8ec5a82bc49b32d4c040"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern int caca_get_font_width </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> const *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return the standard value for the current font's glyphs. Most glyphs in the font will have this width, except fullwidth characters.</p>
<p>This function never fails.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>The font, as returned by <a class="el" href="group__caca__font.html#gaac9551a53a284e9a17e4e67d6400fbf0" title="Load a font from memory for future use. ">caca_load_font()</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The standard glyph width. </dd></dl>

<p>Referenced by <a class="el" href="group__caca__importexport.html#ga264bcf9f821d67f33bd5ee5aa5e048a0">caca_get_export_list()</a>, and <a class="el" href="group__caca__font.html#ga64f055de5dd43137d099aa30e56a5dd6">caca_render_canvas()</a>.</p>

</div>
</div>
<a class="anchor" id="gaea47dfd5abc7224d5030fdf3961e7377"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern int caca_get_font_height </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> const *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the standard value for the current font's glyphs. Most glyphs in the font will have this height.</p>
<p>This function never fails.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>The font, as returned by <a class="el" href="group__caca__font.html#gaac9551a53a284e9a17e4e67d6400fbf0" title="Load a font from memory for future use. ">caca_load_font()</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The standard glyph height. </dd></dl>

<p>Referenced by <a class="el" href="group__caca__importexport.html#ga264bcf9f821d67f33bd5ee5aa5e048a0">caca_get_export_list()</a>, and <a class="el" href="group__caca__font.html#ga64f055de5dd43137d099aa30e56a5dd6">caca_render_canvas()</a>.</p>

</div>
</div>
<a class="anchor" id="gab6ce2db91a640fb8214e2dd37016756f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern uint32_t const* caca_get_font_blocks </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> const *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function returns the list of Unicode blocks supported by the given font. The list is a zero-terminated list of indices. Here is an example:</p>
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;{</div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;   0x0000, 0x0080,   // Basic latin: A, B, C, a, b, c</div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;   0x0080, 0x0100,   // Latin-1 supplement: &quot;A, &#39;e, ^u</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;   0x0530, 0x0590,   // Armenian</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;   0x0000, 0x0000,   // END</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;};</div></div><!-- fragment --><p>This function never fails.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>The font, as returned by <a class="el" href="group__caca__font.html#gaac9551a53a284e9a17e4e67d6400fbf0" title="Load a font from memory for future use. ">caca_load_font()</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The list of Unicode blocks supported by the font. </dd></dl>

<p>Referenced by <a class="el" href="group__caca__font.html#ga64f055de5dd43137d099aa30e56a5dd6">caca_render_canvas()</a>.</p>

</div>
</div>
<a class="anchor" id="ga64f055de5dd43137d099aa30e56a5dd6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern int caca_render_canvas </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#aae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> const *&#160;</td>
          <td class="paramname"><em>cv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> const *&#160;</td>
          <td class="paramname"><em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pitch</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function renders the given canvas on an image buffer using a specific font. The pixel format is fixed (32-bit ARGB, 8 bits for each component).</p>
<p>The required image width can be computed using <a class="el" href="group__libcaca.html#gad85b2ff4c7f952b3cc32f117343a6375" title="Get the canvas width. ">caca_get_canvas_width()</a> and <a class="el" href="group__caca__font.html#ga0580a5e28afd8ec5a82bc49b32d4c040" title="Get a font&#39;s standard glyph width. ">caca_get_font_width()</a>. The required height can be computed using <a class="el" href="group__libcaca.html#gaa529140e8cf31379a6b57af7c37c9d2f" title="Get the canvas height. ">caca_get_canvas_height()</a> and <a class="el" href="group__caca__font.html#gaea47dfd5abc7224d5030fdf3961e7377" title="Get a font&#39;s standard glyph height. ">caca_get_font_height()</a>.</p>
<p>Glyphs that do not fit in the image buffer are currently not rendered at all. They may be cropped instead in future versions.</p>
<p>If an error occurs, -1 is returned and <b>errno</b> is set accordingly:</p><ul>
<li><code>EINVAL</code> Specified width, height or pitch is invalid.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cv</td><td>The canvas to render </td></tr>
    <tr><td class="paramname">f</td><td>The font, as returned by <a class="el" href="group__caca__font.html#gaac9551a53a284e9a17e4e67d6400fbf0" title="Load a font from memory for future use. ">caca_load_font()</a> </td></tr>
    <tr><td class="paramname">buf</td><td>The image buffer </td></tr>
    <tr><td class="paramname">width</td><td>The width (in pixels) of the image buffer </td></tr>
    <tr><td class="paramname">height</td><td>The height (in pixels) of the image buffer </td></tr>
    <tr><td class="paramname">pitch</td><td>The pitch (in bytes) of an image buffer line. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 in case of success, -1 if an error occurred. </dd></dl>

<p>References <a class="el" href="group__caca__attributes.html#gaa673f18e9b8b2e52f4e67788cc41df4d">caca_attr_to_argb64()</a>, <a class="el" href="group__caca__font.html#gad4c4277906b727073789c570f9f1c47d">caca_free_font()</a>, <a class="el" href="group__caca__font.html#gab6ce2db91a640fb8214e2dd37016756f">caca_get_font_blocks()</a>, <a class="el" href="group__caca__font.html#gaea47dfd5abc7224d5030fdf3961e7377">caca_get_font_height()</a>, <a class="el" href="group__caca__font.html#gac5329825d3dbadf2d004ff90d808f15f">caca_get_font_list()</a>, <a class="el" href="group__caca__font.html#ga0580a5e28afd8ec5a82bc49b32d4c040">caca_get_font_width()</a>, and <a class="el" href="group__caca__font.html#gaac9551a53a284e9a17e4e67d6400fbf0">caca_load_font()</a>.</p>

<p>Referenced by <a class="el" href="group__caca__importexport.html#ga264bcf9f821d67f33bd5ee5aa5e048a0">caca_get_export_list()</a>.</p>

</div>
</div>
<a class="anchor" id="gad4c4277906b727073789c570f9f1c47d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern int caca_free_font </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function frees all data allocated by <a class="el" href="group__caca__font.html#gaac9551a53a284e9a17e4e67d6400fbf0" title="Load a font from memory for future use. ">caca_load_font()</a>. The font structure is no longer usable by other libcaca functions. Once this function has returned, the memory area that was given to <a class="el" href="group__caca__font.html#gaac9551a53a284e9a17e4e67d6400fbf0" title="Load a font from memory for future use. ">caca_load_font()</a> can be freed.</p>
<p>This function never fails.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>The font, as returned by <a class="el" href="group__caca__font.html#gaac9551a53a284e9a17e4e67d6400fbf0" title="Load a font from memory for future use. ">caca_load_font()</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>This function always returns 0. </dd></dl>

<p>Referenced by <a class="el" href="group__caca__importexport.html#ga264bcf9f821d67f33bd5ee5aa5e048a0">caca_get_export_list()</a>, and <a class="el" href="group__caca__font.html#ga64f055de5dd43137d099aa30e56a5dd6">caca_render_canvas()</a>.</p>

</div>
</div>
</div><!-- contents -->
  </body>
</html>