<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>How to copy a bitmap?</title>
		<link>http://www.allegro.cc/forums/view/585688</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 31 May 2006 15:50:58 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello guys,</p><p>I&#39;d like to know how can I clone a bitmap that has been programmatically created?</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="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</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></td></tr><tr><td class="number">4</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">5</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">32</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</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, SCALE<span class="k3">*</span><span class="n">160</span>, SCALE<span class="k3">*</span><span class="n">100</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">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td>  PLEVELDESC level<span class="k3">=</span>LoadLevel<span class="k2">(</span><span class="s">"level"</span><span class="k2">)</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> map<span class="k3">=</span>BuildMap<span class="k2">(</span>level<span class="k2">)</span><span class="k2">;</span>  <span class="c">// the map itself calculated 1 time</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> frame<span class="k3">=</span>NULL<span class="k2">;</span> <span class="c">// copy of the map</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td>  <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</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></td></tr><tr><td class="number">13</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">14</td><td>    <span class="c">// how to do a fresh copy of the map without recalculate it???</span></td></tr><tr><td class="number">15</td><td>    frame<span class="k3">=</span> CloneBitmap<span class="k2">(</span>map<span class="k2">)</span><span class="k2">;</span>  <span class="c">// reset the frame</span></td></tr><tr><td class="number">16</td><td>    DrawOtherStuffs<span class="k2">(</span>frame<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>frame, <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>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>frame<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">20</td><td>  </td></tr><tr><td class="number">21</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>map<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>&#160;</td></tr><tr><td class="number">23</td><td>  <a href="http://www.allegro.cc/manual/remove_keyboard" target="_blank"><span class="a">remove_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>  <a href="http://www.allegro.cc/manual/allegro_exit" target="_blank"><span class="a">allegro_exit</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>&#160;</td></tr><tr><td class="number">26</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

How should I write the &quot;CloneBitmap&quot; function <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /></p><p>I have seen nothing in the doc to do a bitmap copy...</p><p>Thanks for helping me.</p><p>Best regards.</p><p>Fred.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (boulifb)</author>
		<pubDate>Wed, 31 May 2006 02:20:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>A bitmap copy is also known as a blit...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Wed, 31 May 2006 02:26:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">manual said:</div><div class="quote"><p>
The origin of the term &quot;blit&quot; is also rather interesting. This was originally BitBlt, an abbreviation of BITmap BLock Transfer, which was a function designed (possibly) by the people at Xerox who did so much of the pioneering work on graphics display systems, and subsequently copied by virtually everybody doing computer graphics (the Microsoft Windows GDI still provides a BitBlt function with identical functionality to the original). This routine was a workhorse for all sorts of drawing operations, basically <b>copying</b> bitmap graphics from one place to another, but including a number of different ROP modes (Raster OPerations) for doing things like XOR, inverting pixels, etc. A whole family of related words grew up around the BitBlt function, but &quot;blt&quot; is impossible to speak (try saying &quot;bltter&quot; or &quot;bltting&quot; :-) so people added the vowel to make it easier to pronounce.
</p></div></div><p>

Emphasis mine.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Onewing)</author>
		<pubDate>Wed, 31 May 2006 02:29:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My best shot would be:</p><p>1. Create a BITMAP.<br />2. Blit to it.<br />3. Return a pointer to the BITMAP.</p><p>Maybe:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>CloneBitmap<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>BMP<span class="k2">)</span>
<span class="k2">{</span>
  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>Tmp <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>BMP-&gt;width, BMP-&gt;height<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>BMP, Tmp, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, BMP-&gt;width, BMP-&gt;height<span class="k2">)</span><span class="k2">;</span>
  <span class="k1">return</span> Tmp<span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
Now I might be wrong with the width and height, I can&#39;t remember their names, but I think the example should work.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CursedTyrant)</author>
		<pubDate>Wed, 31 May 2006 02:32:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It is <tt>w</tt> and <tt>h</tt>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Wed, 31 May 2006 03:07:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ah yes, blitting.... why should have not thought about it before...</p><p>many thanks <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Fred.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (boulifb)</author>
		<pubDate>Wed, 31 May 2006 15:50:58 +0000</pubDate>
	</item>
</rss>
