<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>I Can&#39;t stop Flicker!!</title>
		<link>http://www.allegro.cc/forums/view/588790</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 29 Nov 2006 08:12:50 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, thanks for the ones that answer my last question. But... now I have other:</p><p>Basicaly, I have a class called fBackground that have two bitmaps -&gt; The Background and the scenary. Also I have a Bitmap called &#39;bot&#39; that I want to move over the another ones (Kind of GunBound game). But when I dump the images to the buffer and then to the screen I get a lot of flick!. I don&#39;t know why. You can check the source:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include "fbackground.cpp" //ya no incluimos allegro.h porque ya se hizo aquí</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">4</td><td><span class="k2">{</span></td></tr><tr><td class="number">5</td><td>    fbackground ftest<span class="k2">;</span></td></tr><tr><td class="number">6</td><td>    <span class="k1">int</span> exit_n<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> </td></tr><tr><td class="number">7</td><td>    <span class="k1">int</span> my_pic_x<span class="k3">=</span><span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>    <span class="k1">int</span> my_pic_y<span class="k3">=</span><span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bot<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> buffer<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>    <span class="c">//iniciamos Allegro</span></td></tr><tr><td class="number">12</td><td>    <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//inicialización</span></td></tr><tr><td class="number">13</td><td>  <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>  <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>  <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT_WINDOWED,<span class="n">640</span>,<span class="n">480</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>    bot <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"carro.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>bot<span class="k2">)</span> <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"No cargo... ni se porque"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>    ftest.loadbackground<span class="k2">(</span><span class="s">"background2.bmp"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    ftest.loadmaskedbackground<span class="k2">(</span><span class="s">"background1.bmp"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>    buffer<span class="k3">=</span><a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">640</span>,<span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>    <span class="k1">while</span> <span class="k2">(</span>exit_n<span class="k3">!</span><span class="k3">=</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">22</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">23</td><td>      exit_n<span class="k3">=</span><span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">25</td><td>          <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_RIGHT<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">26</td><td>          <span class="k2">{</span></td></tr><tr><td class="number">27</td><td>             my_pic_x<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>          <span class="k2">}</span></td></tr><tr><td class="number">29</td><td>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_LEFT<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">30</td><td>          <span class="k2">{</span></td></tr><tr><td class="number">31</td><td>               my_pic_x--<span class="k2">;</span></td></tr><tr><td class="number">32</td><td>          <span class="k2">}</span></td></tr><tr><td class="number">33</td><td>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">34</td><td>          <span class="k2">{</span></td></tr><tr><td class="number">35</td><td>               my_pic_y--<span class="k2">;</span></td></tr><tr><td class="number">36</td><td>          <span class="k2">}</span></td></tr><tr><td class="number">37</td><td>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">38</td><td>          <span class="k2">{</span></td></tr><tr><td class="number">39</td><td>               my_pic_y<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>          <span class="k2">}</span> </td></tr><tr><td class="number">41</td><td>          <span class="k1">if</span> <span class="k2">(</span>my_pic_x<span class="k3">&lt;</span><span class="n">0</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">42</td><td>                        my_pic_x<span class="k3">=</span><span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">43</td><td>                        <span class="k2">}</span></td></tr><tr><td class="number">44</td><td><span class="c">// The problematic section start here...</span></td></tr><tr><td class="number">45</td><td>           ftest.dumptobitmap<span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>           <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,bot,my_pic_x,my_pic_y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>           <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer,<a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,buffer-&gt;w,buffer-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">48</td><td>           <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>&#160;</td></tr><tr><td class="number">50</td><td>&#160;</td></tr><tr><td class="number">51</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">52</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>bot<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">55</td><td><span class="k2">}</span></td></tr><tr><td class="number">56</td><td><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span></td></tr></tbody></table></div></div><p>

It also contains some source code of the other post.</p><p><a href="http://www.allegro.cc/files/attachment/590617">http://www.allegro.cc/files/attachment/590617</a> -&gt; The Main file.<br /><a href="http://www.allegro.cc/files/attachment/590618">http://www.allegro.cc/files/attachment/590618</a> -&gt; fBackground Declaration<br /><a href="http://www.allegro.cc/files/attachment/590619">http://www.allegro.cc/files/attachment/590619</a> -&gt; fBackground implementation<br /><a href="http://www.allegro.cc/files/attachment/590621">http://www.allegro.cc/files/attachment/590621</a> -&gt; .zip file with the images used.</p><p>Please help me...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrunoProg64)</author>
		<pubDate>Wed, 29 Nov 2006 06:44:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmmm... I don&#39;t see whats wrong yet... I use clear_to_color(), though, personally...</p><p>Do you <i>need</i> to use acquire/release pairs in your drawing function?</p><p>Also, try using <span class="source-code"><span class="k1">void</span> main<span class="k2">(</span><span class="k2">)</span></span> and just using a blank <span class="source-code"><span class="k1">return</span><span class="k2">;</span></span> statement. Also make sure you directly include <tt>allegro.h</tt>. That&#39;s all I can see incorrect at the moment, though it most likely won&#39;t fix your problem at hand.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kikaru)</author>
		<pubDate>Wed, 29 Nov 2006 06:50:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>nm.</p><p>[edit]<br />To determine what&#39;s causing the flicker, have you tried alternately commenting out the lines:
</p><div class="source-code snippet"><div class="inner"><pre>  ftest.dumptobitmap<span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,bot,my_pic_x,my_pic_y<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
[/edit]
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HardTranceFan)</author>
		<pubDate>Wed, 29 Nov 2006 06:52:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, your problem is in ftest.dumptobitmap.  I read the function and the function itself blits several things directly to the screen instead of the buffer.  The only time ever anything should go to the screen <i>is when going from the buffer to the screen </i>(according the Theory of Double Buffering).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Onewing)</author>
		<pubDate>Wed, 29 Nov 2006 07:01:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh! I didn&#39;t see that in the function... <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kikaru)</author>
		<pubDate>Wed, 29 Nov 2006 07:02:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ditto. Couldn&#39;t see the wood for the trees.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HardTranceFan)</author>
		<pubDate>Wed, 29 Nov 2006 07:21:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks very much!. I didn&#39;t notice that because I was kind of sleepy at the time I wrote this code. And the last question... How can I rotate the &quot;tank&quot; in the map?.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrunoProg64)</author>
		<pubDate>Wed, 29 Nov 2006 08:11:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/rotate_sprite" target="_blank"><span class="a">rotate_sprite</span></a>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kazzmir)</author>
		<pubDate>Wed, 29 Nov 2006 08:12:50 +0000</pubDate>
	</item>
</rss>
