
| Current Path : /usr/share/doc/libcaca-dev/html/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //usr/share/doc/libcaca-dev/html/group__caca__font.html |
<!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.17 -->
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#groups">Modules</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">libcaca bitmap font handling<div class="ingroups"><a class="el" href="group__caca__attr.html">libcaca attribute definitions</a> » <a class="el" href="group__libcaca.html">libcaca basic functions</a> » <a class="el" href="group__caca__canvas.html">libcaca canvas drawing</a> » <a class="el" href="group__caca__dirty.html">libcaca dirty rectangle manipulation</a> » <a class="el" href="group__caca__transform.html">libcaca canvas transformation</a> » <a class="el" href="group__caca__attributes.html">libcaca attribute conversions</a> » <a class="el" href="group__caca__charset.html">libcaca character set conversions</a> » <a class="el" href="group__caca__primitives.html">libcaca primitives drawing</a> » <a class="el" href="group__caca__frame.html">libcaca canvas frame handling</a> » <a class="el" href="group__caca__dither.html">libcaca bitmap dithering</a> » <a class="el" href="group__caca__charfont.html">libcaca character font handling</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>These functions provide bitmap font handling routines and high quality canvas to bitmap rendering.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__caca__figfont"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__figfont.html">libcaca FIGfont handling</a></td></tr>
<tr class="memdesc:group__caca__figfont"><td class="mdescLeft"> </td><td class="mdescRight">These functions provide FIGlet and TOIlet font handling routines. <br /></td></tr>
<tr class="separator:"><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:gaac9551a53a284e9a17e4e67d6400fbf0"><td class="memItemLeft" align="right" valign="top">__extern <a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> * </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"> </td><td class="mdescRight">Load a font from memory for future use. <a href="group__caca__font.html#gaac9551a53a284e9a17e4e67d6400fbf0">More...</a><br /></td></tr>
<tr class="separator:gaac9551a53a284e9a17e4e67d6400fbf0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaad13b0218313b0db2121d8d7fa45484e"><td class="memItemLeft" align="right" valign="top">__extern const char *const * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__font.html#gaad13b0218313b0db2121d8d7fa45484e">caca_get_font_list</a> (void)</td></tr>
<tr class="memdesc:gaad13b0218313b0db2121d8d7fa45484e"><td class="mdescLeft"> </td><td class="mdescRight">Get available builtin fonts. <a href="group__caca__font.html#gaad13b0218313b0db2121d8d7fa45484e">More...</a><br /></td></tr>
<tr class="separator:gaad13b0218313b0db2121d8d7fa45484e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0580a5e28afd8ec5a82bc49b32d4c040"><td class="memItemLeft" align="right" valign="top">__extern int </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"> </td><td class="mdescRight">Get a font's standard glyph width. <a href="group__caca__font.html#ga0580a5e28afd8ec5a82bc49b32d4c040">More...</a><br /></td></tr>
<tr class="separator:ga0580a5e28afd8ec5a82bc49b32d4c040"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaea47dfd5abc7224d5030fdf3961e7377"><td class="memItemLeft" align="right" valign="top">__extern int </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"> </td><td class="mdescRight">Get a font's standard glyph height. <a href="group__caca__font.html#gaea47dfd5abc7224d5030fdf3961e7377">More...</a><br /></td></tr>
<tr class="separator:gaea47dfd5abc7224d5030fdf3961e7377"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga19faac674ede21e9b5830c9a3557c5bb"><td class="memItemLeft" align="right" valign="top">__extern const uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__font.html#ga19faac674ede21e9b5830c9a3557c5bb">caca_get_font_blocks</a> (<a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> const *)</td></tr>
<tr class="memdesc:ga19faac674ede21e9b5830c9a3557c5bb"><td class="mdescLeft"> </td><td class="mdescRight">Get a font's list of supported glyphs. <a href="group__caca__font.html#ga19faac674ede21e9b5830c9a3557c5bb">More...</a><br /></td></tr>
<tr class="separator:ga19faac674ede21e9b5830c9a3557c5bb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga64f055de5dd43137d099aa30e56a5dd6"><td class="memItemLeft" align="right" valign="top">__extern int </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"> </td><td class="mdescRight">Render the canvas onto an image buffer. <a href="group__caca__font.html#ga64f055de5dd43137d099aa30e56a5dd6">More...</a><br /></td></tr>
<tr class="separator:ga64f055de5dd43137d099aa30e56a5dd6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad4c4277906b727073789c570f9f1c47d"><td class="memItemLeft" align="right" valign="top">__extern int </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"> </td><td class="mdescRight">Free a font structure. <a href="group__caca__font.html#gad4c4277906b727073789c570f9f1c47d">More...</a><br /></td></tr>
<tr class="separator:gad4c4277906b727073789c570f9f1c47d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaac9551a53a284e9a17e4e67d6400fbf0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaac9551a53a284e9a17e4e67d6400fbf0">◆ </a></span>caca_load_font()</h2>
<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 * </td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>size</em> </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>
</div>
</div>
<a id="gaad13b0218313b0db2121d8d7fa45484e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaad13b0218313b0db2121d8d7fa45484e">◆ </a></span>caca_get_font_list()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__extern const char* const * caca_get_font_list </td>
<td>(</td>
<td class="paramtype">void </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>
</div>
</div>
<a id="ga0580a5e28afd8ec5a82bc49b32d4c040"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0580a5e28afd8ec5a82bc49b32d4c040">◆ </a></span>caca_get_font_width()</h2>
<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 * </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>
</div>
</div>
<a id="gaea47dfd5abc7224d5030fdf3961e7377"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaea47dfd5abc7224d5030fdf3961e7377">◆ </a></span>caca_get_font_height()</h2>
<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 * </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>
</div>
</div>
<a id="ga19faac674ede21e9b5830c9a3557c5bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga19faac674ede21e9b5830c9a3557c5bb">◆ </a></span>caca_get_font_blocks()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__extern const uint32_t* caca_get_font_blocks </td>
<td>(</td>
<td class="paramtype"><a class="el" href="caca_8h.html#adaa37a82c01b73275fa3d446ec511ad4">caca_font_t</a> const * </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">{</div>
<div class="line"> 0x0000, 0x0080, <span class="comment">// Basic latin: A, B, C, a, b, c</span></div>
<div class="line"> 0x0080, 0x0100, <span class="comment">// Latin-1 supplement: "A, 'e, ^u</span></div>
<div class="line"> 0x0530, 0x0590, <span class="comment">// Armenian</span></div>
<div class="line"> 0x0000, 0x0000, <span class="comment">// END</span></div>
<div class="line">};</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>
</div>
</div>
<a id="ga64f055de5dd43137d099aa30e56a5dd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga64f055de5dd43137d099aa30e56a5dd6">◆ </a></span>caca_render_canvas()</h2>
<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 * </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 * </td>
<td class="paramname"><em>f</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>height</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>pitch</em> </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'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'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 class="reference">References <a class="el" href="group__caca__attributes.html#gaa673f18e9b8b2e52f4e67788cc41df4d">caca_attr_to_argb64()</a>.</p>
</div>
</div>
<a id="gad4c4277906b727073789c570f9f1c47d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad4c4277906b727073789c570f9f1c47d">◆ </a></span>caca_free_font()</h2>
<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> * </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>
</div>
</div>
</div><!-- contents -->
</body>
</html>