Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > 6d7587e5535e7142017769f96c14d623 > files > 54

libcaca-devel-0.99-0.beta16.5mdv2010.0.i586.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>
<!-- $Id$ -->
<!-- Generated by Doxygen 1.5.9 -->
<div class="contents">
<h1>libcaca basic functions</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">__extern <a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libcaca.html#g00caafb33b9d7033d064a642bcad83da">caca_create_canvas</a> (int, int)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a <em>libcaca</em> canvas.  <a href="#g00caafb33b9d7033d064a642bcad83da"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">__extern int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libcaca.html#gb5f079a934949a06c100b0db604d697e">caca_manage_canvas</a> (<a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> *, int(*)(void *), void *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Manage a canvas.  <a href="#gb5f079a934949a06c100b0db604d697e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">__extern int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libcaca.html#g9a793c6b42c90884e650fa03f4640b17">caca_unmanage_canvas</a> (<a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> *, int(*)(void *), void *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unmanage a canvas.  <a href="#g9a793c6b42c90884e650fa03f4640b17"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">__extern int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libcaca.html#g8814d2faa76cad0d7d15381b7eeacab6">caca_set_canvas_size</a> (<a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> *, int, int)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resize a canvas.  <a href="#g8814d2faa76cad0d7d15381b7eeacab6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">__extern int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libcaca.html#gd85b2ff4c7f952b3cc32f117343a6375">caca_get_canvas_width</a> (<a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> const *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the canvas width.  <a href="#gd85b2ff4c7f952b3cc32f117343a6375"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">__extern int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libcaca.html#ga529140e8cf31379a6b57af7c37c9d2f">caca_get_canvas_height</a> (<a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> const *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the canvas height.  <a href="#ga529140e8cf31379a6b57af7c37c9d2f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">__extern uint8_t const *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libcaca.html#g1a6cd94510351b7779a1328721e152c0">caca_get_canvas_chars</a> (<a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> const *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the canvas character array.  <a href="#g1a6cd94510351b7779a1328721e152c0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">__extern uint8_t const *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libcaca.html#g1c8c869b5e0f661c969de9790c1ac865">caca_get_canvas_attrs</a> (<a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> const *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the canvas attribute array.  <a href="#g1c8c869b5e0f661c969de9790c1ac865"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">__extern int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libcaca.html#g12394c16c9ca94b61198be929ef8580d">caca_free_canvas</a> (<a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Uninitialise <em>libcaca</em>.  <a href="#g12394c16c9ca94b61198be929ef8580d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">__extern int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libcaca.html#g685374ff836369f58a5c32a414096f2e">caca_rand</a> (int, int)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate a random integer within a range.  <a href="#g685374ff836369f58a5c32a414096f2e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">__extern char const *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libcaca.html#g3c7edc520b7ea69a721317a9d8649440">caca_get_version</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the <em>libcaca</em> version.  <a href="#g3c7edc520b7ea69a721317a9d8649440"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
These functions provide the basic <em>libcaca</em> routines for library initialisation, system information retrieval and configuration. <hr><h2>Function Documentation</h2>
<a class="anchor" name="g00caafb33b9d7033d064a642bcad83da"></a><!-- doxytag: member="caca.h::caca_create_canvas" ref="g00caafb33b9d7033d064a642bcad83da" args="(int, int)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern <a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a>* caca_create_canvas           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>height</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialise internal <em>libcaca</em> structures and the backend that will be used for subsequent graphical operations. It must be the first <em>libcaca</em> function to be called in a function. <a class="el" href="group__libcaca.html#g12394c16c9ca94b61198be929ef8580d" title="Uninitialise libcaca.">caca_free_canvas()</a> should be called at the end of the program to free all allocated resources.<p>
Both the cursor and the canvas' handle are initialised at the top-left corner.<p>
If an error occurs, NULL is returned and <b>errno</b> is set accordingly:<ul>
<li><code>EINVAL</code> Specified width or height is invalid.</li><li><code>ENOMEM</code> Not enough memory for the requested canvas size.</li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td>The desired canvas width </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>height</em>&nbsp;</td><td>The desired canvas height </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A libcaca canvas handle upon success, NULL if an error occurred. </dd></dl>

<p>References <a class="el" href="caca_8h_source.html#l00079">CACA_DEFAULT</a>, <a class="el" href="attr_8c_source.html#l00170">caca_set_color_ansi()</a>, and <a class="el" href="caca_8h_source.html#l00080">CACA_TRANSPARENT</a>.</p>

<p>Referenced by <a class="el" href="caca_2caca_8c_source.html#l00100">caca_create_display_with_driver()</a>, and <a class="el" href="string_8c_source.html#l00461">caca_set_canvas_boundaries()</a>.</p>

</div>
</div><p>
<a class="anchor" name="gb5f079a934949a06c100b0db604d697e"></a><!-- doxytag: member="caca.h::caca_manage_canvas" ref="gb5f079a934949a06c100b0db604d697e" args="(caca_canvas_t *, int(*)(void *), void *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern int caca_manage_canvas           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(void *)&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Lock a canvas to prevent it from being resized. If non-NULL, the <em>callback</em> function pointer will be called upon each <em>caca_set_canvas_size</em> call and if the returned value is zero, the canvas resize request will be denied.<p>
This function is only useful for display drivers such as the <em>libcaca</em> library.<p>
If an error occurs, -1 is returned and <b>errno</b> is set accordingly:<ul>
<li><code>EBUSY</code> The canvas is already being managed.</li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cv</em>&nbsp;</td><td>A libcaca canvas. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>An optional callback function pointer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The argument to be passed to <em>callback</em>. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 in case of success, -1 if an error occurred. </dd></dl>

<p>Referenced by <a class="el" href="caca_2caca_8c_source.html#l00100">caca_create_display_with_driver()</a>.</p>

</div>
</div><p>
<a class="anchor" name="g9a793c6b42c90884e650fa03f4640b17"></a><!-- doxytag: member="caca.h::caca_unmanage_canvas" ref="g9a793c6b42c90884e650fa03f4640b17" args="(caca_canvas_t *, int(*)(void *), void *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern int caca_unmanage_canvas           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(void *)&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Unlock a canvas previously locked by <a class="el" href="group__libcaca.html#gb5f079a934949a06c100b0db604d697e" title="Manage a canvas.">caca_manage_canvas()</a>. For safety reasons, the callback and callback data arguments must be the same as for the <a class="el" href="group__libcaca.html#gb5f079a934949a06c100b0db604d697e" title="Manage a canvas.">caca_manage_canvas()</a> call.<p>
This function is only useful for display drivers such as the <em>libcaca</em> library.<p>
If an error occurs, -1 is returned and <b>errno</b> is set accordingly:<ul>
<li><code>EINVAL</code> The canvas is not managed, or the callback arguments do not match.</li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cv</em>&nbsp;</td><td>A libcaca canvas. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>The <em>callback</em> argument previously passed to <a class="el" href="group__libcaca.html#gb5f079a934949a06c100b0db604d697e" title="Manage a canvas.">caca_manage_canvas()</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The <em>p</em> argument previously passed to <a class="el" href="group__libcaca.html#gb5f079a934949a06c100b0db604d697e" title="Manage a canvas.">caca_manage_canvas()</a>. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 in case of success, -1 if an error occurred. </dd></dl>

<p>Referenced by <a class="el" href="caca_2caca_8c_source.html#l00100">caca_create_display_with_driver()</a>, and <a class="el" href="caca_2caca_8c_source.html#l00239">caca_free_display()</a>.</p>

</div>
</div><p>
<a class="anchor" name="g8814d2faa76cad0d7d15381b7eeacab6"></a><!-- doxytag: member="caca.h::caca_set_canvas_size" ref="g8814d2faa76cad0d7d15381b7eeacab6" args="(caca_canvas_t *, int, int)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern int caca_set_canvas_size           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>height</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the canvas' width and height, in character cells.<p>
The contents of the canvas are preserved to the extent of the new canvas size. Newly allocated character cells at the right and/or at the bottom of the canvas are filled with spaces.<p>
If as a result of the resize the cursor coordinates fall outside the new canvas boundaries, they are readjusted. For instance, if the current X cursor coordinate is 11 and the requested width is 10, the new X cursor coordinate will be 10.<p>
It is an error to try to resize the canvas if an output driver has been attached to the canvas using <a class="el" href="group__caca__display.html#gc393d4446d813f6e4ba93d2b583c1edb" title="Attach a caca graphical context to a caca canvas.">caca_create_display()</a>. You need to remove the output driver using <a class="el" href="group__caca__display.html#gc1b5b4540a500dd59eaa673d784fab1f" title="Detach a caca graphical context from a caca backend context.">caca_free_display()</a> before you can change the canvas size again. However, the caca output driver can cause a canvas resize through user interaction. See the caca_event() documentation for more about this.<p>
If an error occurs, -1 is returned and <b>errno</b> is set accordingly:<ul>
<li><code>EINVAL</code> Specified width or height is invalid.</li><li><code>EBUSY</code> The canvas is in use by a display driver and cannot be resized.</li><li><code>ENOMEM</code> Not enough memory for the requested canvas size. If this happens, the canvas handle becomes invalid and should not be used.</li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cv</em>&nbsp;</td><td>A libcaca canvas. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td>The desired canvas width. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>height</em>&nbsp;</td><td>The desired canvas height. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 in case of success, -1 if an error occurred. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd85b2ff4c7f952b3cc32f117343a6375"></a><!-- doxytag: member="caca.h::caca_get_canvas_width" ref="gd85b2ff4c7f952b3cc32f117343a6375" args="(caca_canvas_t const *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern int caca_get_canvas_width           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> const *&nbsp;</td>
          <td class="paramname"> <em>cv</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the current canvas' width, in character cells.<p>
This function never fails.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cv</em>&nbsp;</td><td>A libcaca canvas. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The canvas width. </dd></dl>

<p>Referenced by <a class="el" href="event_8c_source.html#l00129">caca_get_mouse_x()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ga529140e8cf31379a6b57af7c37c9d2f"></a><!-- doxytag: member="caca.h::caca_get_canvas_height" ref="ga529140e8cf31379a6b57af7c37c9d2f" args="(caca_canvas_t const *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern int caca_get_canvas_height           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> const *&nbsp;</td>
          <td class="paramname"> <em>cv</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the current canvas' height, in character cells.<p>
This function never fails.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cv</em>&nbsp;</td><td>A libcaca canvas. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The canvas height. </dd></dl>

<p>Referenced by <a class="el" href="event_8c_source.html#l00151">caca_get_mouse_y()</a>.</p>

</div>
</div><p>
<a class="anchor" name="g1a6cd94510351b7779a1328721e152c0"></a><!-- doxytag: member="caca.h::caca_get_canvas_chars" ref="g1a6cd94510351b7779a1328721e152c0" args="(caca_canvas_t const *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern uint8_t const* caca_get_canvas_chars           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> const *&nbsp;</td>
          <td class="paramname"> <em>cv</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the current canvas' internal character array. The array elements consist in native endian 32-bit Unicode values as returned by <a class="el" href="group__caca__canvas.html#g66bd04edac05780b3fd4435e3ef874af" title="Get the Unicode character at the given coordinates.">caca_get_char()</a>.<p>
This function is only useful for display drivers such as the <em>libcaca</em> library.<p>
This function never fails.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cv</em>&nbsp;</td><td>A libcaca canvas. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The canvas character array. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1c8c869b5e0f661c969de9790c1ac865"></a><!-- doxytag: member="caca.h::caca_get_canvas_attrs" ref="g1c8c869b5e0f661c969de9790c1ac865" args="(caca_canvas_t const *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern uint8_t const* caca_get_canvas_attrs           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> const *&nbsp;</td>
          <td class="paramname"> <em>cv</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the current canvas' internal attribute array. The array elements consist in native endian 32-bit attribute values as returned by <a class="el" href="group__caca__attributes.html#gfb35087f212d75b431fc501b3a777b6b" title="Get the text attribute at the given coordinates.">caca_get_attr()</a>.<p>
This function is only useful for display drivers such as the <em>libcaca</em> library.<p>
This function never fails.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cv</em>&nbsp;</td><td>A libcaca canvas. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The canvas attribute array. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g12394c16c9ca94b61198be929ef8580d"></a><!-- doxytag: member="caca.h::caca_free_canvas" ref="g12394c16c9ca94b61198be929ef8580d" args="(caca_canvas_t *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern int caca_free_canvas           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="caca_8h.html#ae0f6938d08e6e0abbcd5a8c06504ab8">caca_canvas_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cv</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free all resources allocated by <a class="el" href="group__libcaca.html#g00caafb33b9d7033d064a642bcad83da" title="Initialise a libcaca canvas.">caca_create_canvas()</a>. After this function has been called, no other <em>libcaca</em> functions may be used unless a new call to <a class="el" href="group__libcaca.html#g00caafb33b9d7033d064a642bcad83da" title="Initialise a libcaca canvas.">caca_create_canvas()</a> is done.<p>
If an error occurs, -1 is returned and <b>errno</b> is set accordingly:<ul>
<li><code>EBUSY</code> The canvas is in use by a display driver and cannot be freed.</li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cv</em>&nbsp;</td><td>A libcaca canvas. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 in case of success, -1 if an error occurred. </dd></dl>

<p>Referenced by <a class="el" href="caca_2caca_8c_source.html#l00100">caca_create_display_with_driver()</a>, and <a class="el" href="caca_2caca_8c_source.html#l00239">caca_free_display()</a>.</p>

</div>
</div><p>
<a class="anchor" name="g685374ff836369f58a5c32a414096f2e"></a><!-- doxytag: member="caca.h::caca_rand" ref="g685374ff836369f58a5c32a414096f2e" args="(int, int)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern int caca_rand           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>max</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Generate a random integer within the given range.<p>
This function never fails.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>min</em>&nbsp;</td><td>The lower bound of the integer range. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>max</em>&nbsp;</td><td>The upper bound of the integer range. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A random integer comprised between <code>min</code> and <code>max</code> - 1 (inclusive). </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3c7edc520b7ea69a721317a9d8649440"></a><!-- doxytag: member="caca.h::caca_get_version" ref="g3c7edc520b7ea69a721317a9d8649440" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__extern char const* caca_get_version           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a read-only string with the <em>libcaca</em> version information.<p>
This function never fails.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The <em>libcaca</em> version information. </dd></dl>

</div>
</div><p>
</div>
<!-- $Id$ -->
  </body>
</html>