<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Rotating problem...</title>
		<link>http://www.allegro.cc/forums/view/588031</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 14 Oct 2006 08:27:46 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have a problem rotating a bitmap.<br />datafile[4]&#39;s resolution is 200x320 and datafile[2] is 320x200. If rotate is 0, datafile[2] shows up great.<br />If rotate is 1, I get mostly garbage on the screen... what am I doing wrong to rotate the bitmap?</p><p>This is the code:</p><p>---<br />    allegro_init();</p><p>    set_gfx_mode(GFX_AUTODETECT, 320, 200, 0, 0);<br />    set_color_conversion(COLORCONV_TOTAL);</p><p>    datafile = load_datafile(&quot;test.dat&quot;);</p><p>    if(rotate) {<br />      set_palette(datafile[4].dat);<br />      bitmap = create_bitmap(200,320);<br />      temp = create_bitmap(200,320);<br />      blit(datafile[3].dat, bitmap, 0, 0, 0, 0, 200, 320);<br />      rotate_sprite(temp, bitmap, 0, 0, itofix(64));<br />      blit(temp, screen, 0, 0, 0, 0, 320, 200);<br />    } else {<br />      set_palette(datafile[2].dat);<br />      bitmap = create_bitmap(320,200);<br />      temp = create_bitmap(320,200);<br />      blit(datafile[1].dat, bitmap, 0, 0, 0, 0, 320, 200);<br />      blit(bitmap, screen, 0, 0, 0, 0, 320, 200);<br />    }<br />-------</p><p>Thanks!!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Marton)</author>
		<pubDate>Sat, 14 Oct 2006 07:34:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>First off, don&#39;t forget about the <a href="http://www.allegro.cc/mockup.html">code</a> tags.</p><div class="source-code snippet"><div class="inner"><pre>...
  temp <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">200</span>,<span class="n">320</span><span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>datafile<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.dat, bitmap, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">200</span>, <span class="n">320</span><span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/rotate_sprite" target="_blank"><span class="a">rotate_sprite</span></a><span class="k2">(</span>temp, bitmap, <span class="n">0</span>, <span class="n">0</span>, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">64</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>temp, <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>, <span class="n">320</span>, <span class="n">200</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//you created temp with 200x300... why change that to 320x200 here?</span>
...
</pre></div></div><p>
It may be safer, but bulkier, to use this from now on:<br /><span class="source-code"><a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>temp,<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>,temp-&gt;w,temp-&gt;h<span class="k2">)</span><span class="k2">;</span></span></p><p> </p><p>[edit]<br />Of course, a common mistake. The &quot;sprite&quot; functions are a little diffrent from the &quot;blit&quot; functions in that the source and dest <tt>BITMAP*</tt>s are reversed in order.
</p><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><span class="k2">(</span>temp, bitmap, <span class="n">0</span>, <span class="n">0</span>, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">64</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
  <span class="c">//should be</span>
  <a href="http://www.allegro.cc/manual/rotate_sprite" target="_blank"><span class="a">rotate_sprite</span></a><span class="k2">(</span>bitmap, temp, <span class="n">0</span>, <span class="n">0</span>, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">64</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
Usually, when you see that chaotic ugliness as bitmaps, it means nothing has been drawn to them yet. They either need to be cleared or drawn over.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ceagon Xylas)</author>
		<pubDate>Sat, 14 Oct 2006 08:27:46 +0000</pubDate>
	</item>
</rss>
