Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 89de7b48d4fd156f0af7b4735abd1453 > files > 32

libtiger-doc-0.3.4-1.fc14.noarch.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"/>
<title>libtiger: simple.c</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libtiger&#160;<span id="projectnumber">0.3.4</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <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="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<h1>simple.c</h1>  </div>
</div>
<div class="contents">
<div class="fragment"><pre class="fragment"><span class="comment">/*</span>
<span class="comment">  */</span>

<span class="preprocessor">#include &lt;stdio.h&gt;</span>
<span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<span class="preprocessor">#include &lt;ogg/ogg.h&gt;</span>
<span class="preprocessor">#include &lt;kate/kate.h&gt;</span>
<span class="preprocessor">#include &quot;common.h&quot;</span>

<span class="comment">/* All the libtiger API is available from the main tiger header file: */</span>

<span class="preprocessor">#include &lt;<a class="code" href="tiger_8h.html">tiger/tiger.h</a>&gt;</span>

<span class="preprocessor">#define FPS ((kate_float)25.0)</span>
<span class="preprocessor"></span>
<span class="keyword">static</span> <span class="keywordtype">void</span> step_render(tiger_renderer *tr,kate_float *t,kate_float t1)
{
  <span class="keywordflow">for</span> (;*t&lt;=t1;*t+=(kate_float)1.0/FPS) {
    <a name="a0"></a><a class="code" href="group__renderer.html#gae15f847d25ce9c1b48ef29ecc75fcb60">tiger_renderer_update</a>(tr,*t,1);
    <span class="keywordflow">if</span> (<a name="a1"></a><a class="code" href="group__renderer.html#gaaf7c376dde566e84284036f0c5bb3b6b">tiger_renderer_is_dirty</a>(tr)) {
      <a name="a2"></a><a class="code" href="group__renderer.html#gab402a7397960e91f82bd7c91c2983435">tiger_renderer_render</a>(tr);
    }
  }
}

<span class="keywordtype">int</span> main()
{
  ogg_sync_state oy;
  ogg_stream_state os;
  <span class="keywordtype">int</span> init=0;
  ogg_packet op;
  kate_state k;
  <span class="keyword">const</span> kate_event *ev;
  kate_packet kp;
  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *image;
  tiger_renderer *tr;
  kate_float render_time=(kate_float)0;
  kate_float end_time=(kate_float)0;

  set_binary_file(stdin);

  <span class="comment">/* create a buffer to draw to */</span>
  image=(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)malloc(640*480*4);

  <span class="comment">/* we initialize ogg, kate, and tiger */</span>
  ogg_sync_init(&amp;oy);
  kate_high_decode_init(&amp;k);
  <a name="a3"></a><a class="code" href="group__renderer.html#ga27e03677cff75565a7723e1711c498aa">tiger_renderer_create</a>(&amp;tr);
  <a name="a4"></a><a class="code" href="group__renderer.html#ga616dfb49c1ea8b4dd44a204e702a51c9">tiger_renderer_set_buffer</a>(tr,image,640,480,640*4,0);
  <a name="a5"></a><a class="code" href="group__renderer.html#ga04ee034ba17a605f11801b66205c5ed3">tiger_renderer_set_surface_clear_color</a>(tr,1,0,0,0,0);

  <span class="comment">/*</span>
<span class="comment">    We then read packets and feed them to the libkate high level API. When</span>
<span class="comment">    kate_high_decode_packetin returns a positive number, this signals the</span>
<span class="comment">    end of the stream.</span>
<span class="comment">    */</span>
  <span class="keywordflow">while</span> (1) {
    <span class="keywordflow">if</span> (get_packet(&amp;oy,&amp;os,&amp;init,&amp;op)) <span class="keywordflow">break</span>;
    kate_packet_wrap(&amp;kp,op.bytes,op.packet);
    <span class="keywordflow">if</span> (kate_high_decode_packetin(&amp;k,&amp;kp,&amp;ev)&gt;0) <span class="keywordflow">break</span>;
    <span class="comment">/* if the event is non NULL, we have an event */</span>
    <span class="keywordflow">if</span> (ev) {
      step_render(tr,&amp;render_time,ev-&gt;start_time);
      <span class="keywordflow">if</span> (ev-&gt;end_time&gt;end_time) end_time=ev-&gt;end_time;
      <a name="a6"></a><a class="code" href="group__renderer.html#ga3a83f6b639322dbd99dd63ef03820716">tiger_renderer_add_event</a>(tr,k.ki,ev);
    }
  }
  step_render(tr,&amp;render_time,end_time);

  <span class="comment">/* That&#39;s it, we can now cleanup */</span>
  <a name="a7"></a><a class="code" href="group__renderer.html#ga0f2963d8b49870418a58bfc0d3e7ee06">tiger_renderer_destroy</a>(tr);
  free(image);

  ogg_stream_clear(&amp;os);
  ogg_sync_clear(&amp;oy);

  kate_high_decode_clear(&amp;k);

  <span class="keywordflow">return</span> 0;
}

</pre></div> </div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Sat Mar 26 2011 for libtiger by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>