<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Drawing to bitmap</title>
		<link>http://www.allegro.cc/forums/view/614461</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 18 Jul 2014 01:33:03 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello,<br />consider following code<br /> 
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  <a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>  <a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>  
<span class="number">  6</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><span class="n">800</span>, <span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>
<span class="number">  8</span>  <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span>  <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>
<span class="number"> 12</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bitmap <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_bitmap"><span class="a">al_create_bitmap</span></a><span class="k2">(</span><span class="n">160</span>, <span class="n">80</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>  
<span class="number"> 14</span>  <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>bitmap<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span>  <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">100</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>  
<span class="number"> 18</span>    
<span class="number"> 19</span>  <a href="http://www.allegro.cc/manual/al_save_bitmap"><span class="a">al_save_bitmap</span></a><span class="k2">(</span><span class="s">"green.png"</span>, bitmap<span class="k2">)</span><span class="k2">;</span>  <span class="c">//green.png is green</span>
<span class="number"> 20</span>  <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>      <span class="c">//display is now green</span>
<span class="number"> 21</span>  cin.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>  
<span class="number"> 22</span>
<span class="number"> 23</span>  <a href="http://www.allegro.cc/manual/al_set_target_backbuffer"><span class="a">al_set_target_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>
<span class="number"> 25</span>  <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">100</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>  
<span class="number"> 27</span>  <a href="http://www.allegro.cc/manual/al_save_bitmap"><span class="a">al_save_bitmap</span></a><span class="k2">(</span><span class="s">"red.png"</span>, bitmap<span class="k2">)</span><span class="k2">;</span>  <span class="c">//red.png is red</span>
<span class="number"> 28</span>  <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>      <span class="c">//display is now red</span>
<span class="number"> 29</span>  cin.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>  
<span class="number"> 31</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 32</span><span class="k2">}</span>
</div></div><p>

I read documentation and I thought that display should never be green, because I am drawing green to bitmap and bitmap &quot;red.png&quot; should be green. But it is not.<br />If it is behaving correctly, please tell me how to draw only to bitmap and only to display.<br />Allegro version is 5.1.8 and OS is Debian.  <br />Also please tell me how is this program behaving on your computer.<br />Thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kyborg)</author>
		<pubDate>Wed, 16 Jul 2014 23:34:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It didn&#39;t save the bitmaps for me at all until I put a <span class="source-code"><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span></span> right after al_init().  Oh, yeah, there is no &quot;init_allegro()&quot; unless you didn&#39;t post a function you wrote yourself, but you must have or it wouldn&#39;t have compiled.  I used &quot;al_init()&quot;.</p><p>Anyway, it now shows a blank screen, which turns to red, and both bitmap files are green.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 17 Jul 2014 00:58:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks for reply. Yes init_allegro() is function I wrote myself. It only calls al_init() and al_init_image_addon(). I will change code in the first post because this function can be confusing.<br />So it behave differently on your computer. What Allegro version are you using?<br />Can it be caused be operating system? Because I have unstable version of it...<br />Also I have tried some Allegro tests and some of them failed. For example &quot;test_backbuffer.ini&quot; in allegro/tests has 4 failed tests.<br />Maybe some moderator can move this to Allegro Development section, because it looks like bug.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kyborg)</author>
		<pubDate>Thu, 17 Jul 2014 13:27:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m using Allegro 5.1.7 with Linux, Nvidia GeForce GTX 650.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 17 Jul 2014 13:32:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Did you try the tests? Did some of them failed?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kyborg)</author>
		<pubDate>Thu, 17 Jul 2014 13:57:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What tests?  The Allegro examples?  They all worked, except the ones for hardware I don&#39;t have (such as dual monitors).  There was also some resizing thing that didn&#39;t work right a couple of years ago, I don&#39;t think it&#39;s fixed yet.</p><p>I don&#39;t think I tried them all because it&#39;s so tedious, there were a couple of GLSL examples I just ran a few days ago and I&#39;m pretty sure I&#39;d never seen them before (they worked correctly too).</p><p>[EDIT]<br />I always get rid of the noveau (?) open source driver and install the Nvidia proprietary driver because the noveau driver sucks so hard, for example, the ex_gldepth example doesn&#39;t work right with it.  OTOH, about a year ago I reported a problem and spent about three days trying to fix it when I saw a new Nvidia driver had come out and it worked correctly then.  <span class="cuss"><span><span class="cuss"><span>Shit</span></span></span></span> happens.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 17 Jul 2014 14:01:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No. When you download allegro, there is directory &quot;tests&quot;. In this directory there is source file &quot;test_driver.c&quot; and few other files for example &quot;test_bitmaps.ini&quot;, &quot;test_backbuffer.ini&quot;.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kyborg)</author>
		<pubDate>Thu, 17 Jul 2014 14:15:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I didn&#39;t try those, I just fiddled with it for two minutes and tried about five of them (including test_bitmap.ini) and they all flashed a window too fast to really see what&#39;s happening and the console is full of OK messages.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 17 Jul 2014 14:25:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Would you please try test_backbuffer.ini? I have this output from it:</p><p>OK   test bbsrc [sw]<br />FAIL test bbsrc [hw] - RMS error is 35.2781<br />hash_hw=0c801dc5<br />sig_hw=ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg<br />OK   test bbsrc translate [sw]<br />FAIL test bbsrc translate [hw] - RMS error is 33.9109<br />hash_hw=0c801dc5<br />sig_hw=ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg<br />OK   test bbsrc outside [sw]<br />FAIL test bbsrc outside [hw] - RMS error is 27.0248<br />hash_hw=0c801dc5<br />sig_hw=ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg<br />OK   test bbsrc tint [sw]<br />FAIL test bbsrc tint [hw] - RMS error is 27.2208<br />hash_hw=0c801dc5<br />sig_hw=ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg</p><p>total tests:  8<br />passed tests: 4<br />failed tests: 4</p><p>But I dont know, what does it mean... Maybe it is connected to the original error I had.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kyborg)</author>
		<pubDate>Thu, 17 Jul 2014 14:38:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><pre>
pepsi@fractal:/home/prog/allegro-5.1.7/build/tests 05:45 AM $ test_driver ../../tests/test_backbuffer.ini 
OK   test bbsrc [sw]
OK   test bbsrc [hw]
OK   test bbsrc translate [sw]
OK   test bbsrc translate [hw]
OK   test bbsrc outside [sw]
OK   test bbsrc outside [hw]
OK   test bbsrc tint [sw]
OK   test bbsrc tint [hw]

total tests:  8
passed tests: 8
failed tests: 0
</pre><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 17 Jul 2014 14:46:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Kyborg those tests seems related to hardware problems, of some sort.</p><p>I&#39;m not able to be more helpful thou <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Thu, 17 Jul 2014 15:02:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Kyborg, what video card and driver do you have?</p><p>If it&#39;s Nvidia I&#39;m using NVIDIA-Linux-x86_64-331.20.run installer for 64 bit linux.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 17 Jul 2014 15:10:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My video card is AMD Radeon HD 7570M. I dont know which driver I am using.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kyborg)</author>
		<pubDate>Thu, 17 Jul 2014 17:55:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This part of the code is fine :
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span> <span class="k2">{</span> 
 <a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
 <a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
 <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><span class="n">800</span>, <span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
 <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
 <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

The next part flips the display without drawing anything to it (which means it could display anything) (you never set the drawing target back to the backbuffer) :
</p><div class="source-code snippet"><div class="inner"><pre> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bitmap <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_bitmap"><span class="a">al_create_bitmap</span></a><span class="k2">(</span><span class="n">160</span>, <span class="n">80</span><span class="k2">)</span><span class="k2">;</span>
 <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>bitmap<span class="k2">)</span><span class="k2">;</span>
 <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">100</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
 <a href="http://www.allegro.cc/manual/al_save_bitmap"><span class="a">al_save_bitmap</span></a><span class="k2">(</span><span class="s">"green.png"</span>, bitmap<span class="k2">)</span><span class="k2">;</span> <span class="c">//green.png is green</span>
 <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//display could hold anything</span>
 cin.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

green.png should now exist and be green.</p><p>The last part of the code you showed us should save red.png as a green bitmap as well, because the green bitmap is the bitmap you specified to save :
</p><div class="source-code snippet"><div class="inner"><pre> <a href="http://www.allegro.cc/manual/al_set_target_backbuffer"><span class="a">al_set_target_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
 <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">100</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
 <a href="http://www.allegro.cc/manual/al_save_bitmap"><span class="a">al_save_bitmap</span></a><span class="k2">(</span><span class="s">"red.png"</span>, bitmap<span class="k2">)</span><span class="k2">;</span> <span class="c">//red.png is green b/c bitmap is green</span>
 <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//display is now red</span>
 cin.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span> <span class="k2">}</span>
</pre></div></div><p>

The screen should be red now.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 18 Jul 2014 01:33:03 +0000</pubDate>
	</item>
</rss>
