<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Advice on using Allegro 4 or 5?</title>
		<link>http://www.allegro.cc/forums/view/607359</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 20 May 2011 21:07:47 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello all,</p><p>being a complete novice to allegro, I am wondering if I should be using version 4 or 5? I am having some difficulty with 5, getting it to work on linux, finding examples of how to make certain functions work. However with version 4 I know there are multiple tutorials and examples available.</p><p>I feel that I have a pretty good understanding of programming basics, and would like to explore allegro as a tool I use to further my knowledge of programming.</p><p>What arguments are there against using the older version versus the newer? I feel like I want to use 5, but I do not want to come in here every day to ask the most basic of questions. Are there some places I can find examples on the allegro functions above and beyond what is in the wiki?</p><p>Thanks everyone!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (sec_goat)</author>
		<pubDate>Wed, 18 May 2011 17:49:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, you don&#39;t need to see only the Wiki, you can check the Allegro. cc forum, using the search engine (I use to get better result with the google engine), the forum is plenty of new topics about Allegro 5, </p><p>What you need to think about it, is that Allegro 5 is the future and Allegro 4 is the past... It&#39;s going to happen the same as if you were using and old version of any other software, as you surely already read on the wiki &quot;Allegro 4 is no longer actively developed, but we still apply patches sent to us by contributors, mainly to fix minor bugs.&quot;</p><p>Allegro 5 has a port to the iPhone and a work-in-progress for Android. </p><p>Even when there is a lot of tutorials about Allegro 4 these days, in the future is not going to be the same, practically you&#39;re going to have to learn Allegro 5 some day. </p><p>Allegro 5 isn&#39;t difficult at all, believe me, when I start learning A5 I was a completely newbie, I used Allegro 4 just a little bit, and I have found no problem when I begun to use A5.</p><p>So my recommendation is, start learning Allegro 5.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Wed, 18 May 2011 18:26:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/917986#target">sec_goat</a> said:</div><div class="quote"><p>I am wondering if I should be using version 4 or 5?</p></div></div><p>
5.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>I am having some difficulty with 5, getting it to work on linux,</p></div></div><p>
What sort of difficulty?<br />Getting it to work on Linux, if anything, should be easier than any of the other platforms since most of the developers use Linux. Please post any installation problems or difficulties you run into and they can be looked at and we can give you a pointer in the right direction.<br />There are some Allegro 5 RPMs as well, they may work on your system.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>finding examples of how to make certain functions work.</p></div></div><p>
If you download the Allegro source, it comes with an examples/ directory. Many of them are simple tests, but they should still give you a good idea for how to use particular functions. The examples are also linked from the manual pages on allegro.cc (not from the official manual though).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Wed, 18 May 2011 18:57:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;d say move to windows and choose XNA instead <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Wed, 18 May 2011 18:57:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><b>AMCerasoli:</b> My first thought was to go with 5 as well since 4 is no longer developed or supported. I had used 4 briefly in the past, and I am already liking the function names better in 5, easier for me to keep track of what they do.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/917989#target">Evert</a> said:</div><div class="quote"><p>Getting it to work on Linux, if anything, should be easier than any of the other platforms since most of the developers use Linux</p></div></div><p>

I am using Lubuntu and I run through the download, and Cmake of source as found on the wiki (<a href="http://wiki.allegro.cc/index.php?title=Install_Allegro5_From_SVN/Linux/Debian">http://wiki.allegro.cc/index.php?title=Install_Allegro5_From_SVN/Linux/Debian</a>)<br />It appears to install just fine, but then I do not know where to go from there. There was a wiki article on linking code::blocks and allegro5 on windows and that worked great. I am not sure how to do the same in linux, and just opening my windows project does not work.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/917990#target">Neil Walker</a> said:</div><div class="quote"><p>I&#39;d say move to windows and choose XNA instead </p></div></div><p> <br />I appreciate the advice, but I think I will stick with allegro, it is more cross platform as I understand it. My main machine is windows, I just have a server and laptop running linux and will not be changing that any time soon.  What are the merits to XNA over allegro?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (sec_goat)</author>
		<pubDate>Wed, 18 May 2011 20:29:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918007#target">sec_goat</a> said:</div><div class="quote"><p>There was a wiki article on linking code::blocks and allegro5 on windows and that worked great. I am not sure how to do the same in linux, and just opening my windows project does not work.</p></div></div><p>
Ah, well, I don&#39;t know how to set it up with an IDE. I can tell you that in order to work out the linker options you run <tt>pkg-config --libs allegro-5.0</tt> in a terminal (and similar for each addon). How to get that information in the IDE, however, is up to you to work out.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Wed, 18 May 2011 20:41:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918007#target">sec_goat</a> said:</div><div class="quote"><p>
What are the merits to XNA over allegro?
</p></div></div><p>

Well... nothing special... just that XNA is supported by a multinational company with multiple devices and the guy who create Allegro (until 1998 IIRC) is working for them... nothing special... <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /> , And Allegro is well... a multinational library supported by people all around the world... Which make you life easier, in a lot of platforms...</p><p>XNA = <b>Windows</b>, <b>Xbox</b>, <b>Windows Phone 7</b></p><p>Allegro = <b>Windows</b>, <b>Linux</b>, <b>iPhone</b>... And I hope someday <b>Android</b>. </p><p>The new <b>Xperia Play Sonic Ericson</b> uses Android. I don&#39;t know if Allegro could run in that device. The controls are something special.</p><p>If you manage to install Allegro on Linux you can try to run the <b>ex_ogre3d.cpp</b> example... I would like to try it but I&#39;m using Windows, and the file says:</p><div class="quote_container"><div class="title">ex_ogre3d, by Peter Wang said:</div><div class="quote"><p>
It currently only works on Linux/GLX.  To run, you will need to have OGRE plugins.cfg and resources.cfg files in the current directory.
</p></div></div><p>

Ogre3D, is an excellent library, many people say it&#39;s so complicated that it&#39;s the same of using DirectX directly, though.</p><p>PS: The wiki is editable, so if you have lot of trouble installing Allegro 5 on Linux and you feel like no one should pass thru&#39; the same, you could create an article since there is no good article about it... Good Luck!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Wed, 18 May 2011 22:18:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918019#target">AMCerasoli</a> said:</div><div class="quote"><p>XNA = Windows, Xbox, Windows Phone 7</p></div></div><p>

I think I will be sticking with allegro as it supports the linux environment, as an avid linux hobbyist I would not want to leave that platform out. </p><p>If I can manage to get the darn thing working in linux I will definitely put up a tutorial / walk through on how to do so. and I will also try out the ex_ogre3d.cpp example. I will not give up until I have allegro working on my linux system!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (sec_goat)</author>
		<pubDate>Wed, 18 May 2011 22:36:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>In Code::Blocks put this (plus any addon libs at the end): <span class="source-code">`pkg-config <span class="k3">-</span><span class="k3">-</span>libs allegro-5.0`</span><br />In Project menu -&gt; Build options... -&gt; Linker settings tab -&gt; Other linker options
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Surt)</author>
		<pubDate>Thu, 19 May 2011 03:31:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918007#target">sec_goat</a> said:</div><div class="quote"><p>My first thought was to go with 5 as well since 4 is no longer developed or supported.</p></div></div><p>
This forum is about the only &#39;support&#39; available. And as for the development, it gets developed for as much some <s>geek</s> honourable developer still feels like changing something.<br /><a href="http://www.allegro.cc/forums/thread/607099/917703#target">For example...</a><br />That being said: Allegro 5 is the future.</p><p>Disadvantages of 5 over 4:
</p><ul><li><p>Less examples available. (Ideally this will change. The included manual and example programs should provide examples of very basic function usage. There are already games written in A5 with sources available.)
</p></li><li><p>Pixel perfect drawing can be a hassle (So I&#39;ve heard. There seems to be ways around this.)
</p></li><li><p>No MIDI functions (Could be there in the future. A4&#39;s routines were allegedly bad.)
</p></li><li><p>No support for older Windows, DOS, BEOS<span class="ref"><sup>[<a href="#">1</a>]</sup></span>. Also support for some compilers was dropped (?) (OMG what a problem <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" /> )</p></li></ul><p>Advantages of 5 over 4:
</p><ul><li><p>Everything else <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /></p></li></ul><p>Allegro 5 still works on OSX, doesn&#39;t it?
</p><div class="ref-block"><h2>References</h2><ol><li>And some other obscure operating system...?</li></ol></div></div>]]>
		</description>
		<author>no-reply@allegro.cc (weapon_S)</author>
		<pubDate>Thu, 19 May 2011 12:01:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Allegro 4 has support for fairly fast drawing of memory bitmaps, Allegro 5 does not. So if you want a bitmap larger than the graphics card will give you, then you&#39;re kind of screwed and you have to mess around with segmenting it into smaller video bitmaps.</p><p>Allegro 4 has much shorter function names where Allegro 5 is getting a little verbose.</p><p>Allegro 4 has some support for hardware accelerated drawing, but not nearly as much as Allegro 5.</p><p>Allegro 4 has state based input, and Allegro 5 has event based input.</p><p>Allegro 4 has support for OpenGL through AllegroGL, and Allegro 5 has support for OpenGL built in.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 19 May 2011 12:46:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918110#target">weapon_S</a> said:</div><div class="quote"><p>Allegro 5 still works on OSX, doesn&#39;t it?</p></div></div><p>

Of course. Windows/OSX/Linux are the three main platforms. There&#39;s also an iPhone port and the Android port is being worked on (mainly by Thomas right now).</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918119#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>Allegro 4 has support for fairly fast drawing of memory bitmaps, Allegro 5 does not.</p></div></div><p>

Even if you disable blending in A5 / enable blending in A4? The Allegro5 al_draw_bitmap is basically a memcpy() for each line without blending, so it shouldn&#39;t be much slower. As for blending, there is no color keying support in A5 so it&#39;s of course hard to directly compare. But you can use the RGBA_5551 mode for a very similar effect and with the right blend mode comparable speed (at least the GPX port is using a highly optimized version of the 5551 blitter as far as I know, not sure if that code is used normally, but easy to make it use it if it isn&#39;t).</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Allegro 4 has some support for hardware accelerated drawing, but not nearly as much as Allegro 5.</p></div></div><p>

I&#39;d say except for Windows, it has none at all. Also for OSX it uses some outdated windowing API which usually behaves badly. I remember X-G ported a game to A5 because of that.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Allegro 4 has state based input, and Allegro 5 has event based input.</p></div></div><p>

A5 has state based input as well (al_get_mouse_state, al_get_keyboard_state, al_get_joystick_state). Of course relying on them is not a good idea as you lose all state changes between two calls of the function - just like in A4.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Thu, 19 May 2011 15:35:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I see a lot of good feed back here. Thank you everyone for your input. I am definitely feeling a little more confident about using the new version of allegro for my projects.
</p><div class="quote_container"><div class="title">weapon_s said:</div><div class="quote"><p>No MIDI functions (Could be there in the future. A4&#39;s routines were allegedly bad.)</p></div></div><p>
 More novice questions, if you are not using MIDI for sound what else can you use for sound in your games? I know some of the more &quot;state of the art&quot; games have music / sounds which are definitely not midi, but for the typical dabbler, what other choices are there?</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918055#target">Surt</a> said:</div><div class="quote"><p> In Code::Blocks put this (plus any addon libs at the end): `pkg-config --libs allegro-5.0`<br />In Project menu -&gt; Build options... -&gt; Linker settings tab -&gt; Other linker options</p></div></div><p>

This is one of the steps I had tried which seemingly did not work. I now realize there is a different issue, the libraries are there, installed and code blocks has that option, but for whatever reason it is not finding the path. If i type the full path to the allegro.h etc it works (/home/me/allegro/include/allegro5) But I can forsee that not working as soon as it leaves my system. any ideas on how to make code::blocks see the right path? SUDO LDCONFIG does not work as some on the wiki have suggested.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (sec_goat)</author>
		<pubDate>Thu, 19 May 2011 16:02:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Maybe someone (i.e. I&#39;m lazy so count me out) should create a few tests and compare A4 and A5 using similar code, e.g. bitmap/polygon drawing, etc. then maybe the wiki can say, &#39;A5 is statistically 32.5% faster than A4&#39; <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Thu, 19 May 2011 16:25:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>A4 already times several things in the test/test.c program, so just write a comparable program in A5.  I&#39;m pretty sure A5 would win hands down as long as it wasn&#39;t an Intel on-board graphic chip.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 19 May 2011 16:28:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918130#target">sec_goat</a> said:</div><div class="quote"><p>
if you are not using MIDI for sound what else can you use for sound in your games? I know some of the more &quot;state of the art&quot; games have music / sounds which are definitely not midi, but for the typical dabbler, what other choices are there?
</p></div></div><p>

No other than .OGG. Ogg Vorbis is a completely open, patent-free, professional audio encoding and streaming technology with all the benefits of Open Source.</p><p>Personally I think it&#39;s better than .MP3.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Thu, 19 May 2011 16:37:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918133#target">AMCerasoli</a> said:</div><div class="quote"><p> Personally I think it&#39;s better than .MP3.</p></div></div><p>Are you going to lend him your orchestra to record the music?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 19 May 2011 16:49:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /> My orchestra is another software... I just realize that 80% of things that I&#39;m learning doesn&#39;t exist...</p><p>Hey I&#39;m a musician, <br />oh yhea? what instrument do you play? <br />The PC...<br /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></p><p>Hear this... I was playing too much Cave Story, and end up producing this... It&#39;s all improvisation... It took me 10 min, so it sucks, but I don&#39;t know why reminds me the in-game music of Cave Story, maybe beacuse I was trying to get something similar <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />.</p><p>It isn&#39;t quantized... <br /><span class="media-player audio"><a href="http://www.allegro.cc/files/attachment/604138"><img src="http://www.allegro.cc/images/audio-tn.png" style="border: 0;" alt="media player" /></a></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Thu, 19 May 2011 18:24:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918135#target">Arthur Kalliokoski</a> said:</div><div class="quote"><p>Are you going to lend him your orchestra to record the music?</p></div></div><p>

I must be missing something, can you only record live instruments to OGG? or is this just a refere3nce to how hard the format is to work with?</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918137#target">AMCerasoli</a> said:</div><div class="quote"><p>Hear this... I was playing too much Cave Story, and end up producing this... It&#39;s all improvisation... It took me 10 min, so it sucks, but I don&#39;t know why reminds me the in-game music of Cave Story, maybe because I was trying to get something similar</p></div></div><p>

I like the way this sounds, what did you use to make it? Also think you can make something more ambient and space themed? I am going to need a sound track for a future project I am planning for. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (sec_goat)</author>
		<pubDate>Thu, 19 May 2011 19:03:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918139#target">sec_goat</a> said:</div><div class="quote"><p>I must be missing something, can you only record live instruments to OGG? or is this just a refere3nce to how hard the format is to work with?</p></div></div><p>

.ogg is just like .mp3, only better quality/compression. You can use timidity (or other programs) to convert your .mid files to .ogg.</p><p>Allegro 5 also supports MOD (.it/.xm/.s3c/.mod) if you prefer them for some reason.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Thu, 19 May 2011 19:21:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918139#target">sec_goat</a> said:</div><div class="quote"><p>
I must be missing something, can you only record live instruments to OGG? or is this just a refere3nce to how hard the format is to work with?
</p></div></div><p>

You don&#39;t work with the format. You use software to create music / sound and export it to an .ogg file. Then you use that file in your game using Allegro 5. You don&#39;t see the internal workings of OGG... So no worries there.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Vanneto)</author>
		<pubDate>Thu, 19 May 2011 19:22:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918130#target">sec_goat</a> said:</div><div class="quote"><p>If i type the full path to the allegro.h etc it works (/home/me/allegro/include/allegro5) But I can forsee that not working as soon as it leaves my system.</p></div></div><p>The simplest solution (presuming you have permissions to do so) is to do a proper system install with a <span class="source-code">sudo make install</span> which should put the headers in the proper place to be found by the compiler.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Surt)</author>
		<pubDate>Fri, 20 May 2011 06:32:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918130#target">sec_goat</a> said:</div><div class="quote"><p>
If i type the full path to the allegro.h etc it works (/home/me/allegro/include/allegro5) But I can forsee that not working as soon as it leaves my system.
</p></div></div><p>
You need to add a compiler search directory to your project. Use Menu-&gt;Project-&gt;BuildOptions, select your main project (not the specific build type) and go to Search Directories-&gt;Compiler and add in the directory where you have your allegro headers.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918129#target">Elias</a> said:</div><div class="quote"><p>
</p><div class="quote_container"><div class="title">Edgar said:</div><div class="quote"><p>
Allegro 4 has support for fairly fast drawing of memory bitmaps, Allegro 5 does not.
</p></div></div><p>
Even if you disable blending in A5 / enable blending in A4? The Allegro5 al_draw_bitmap is basically a memcpy() for each line without blending, so it shouldn&#39;t be much slower. As for blending, there is no color keying support in A5 so it&#39;s of course hard to directly compare. But you can use the RGBA_5551 mode for a very similar effect and with the right blend mode comparable speed (at least the GPX port is using a highly optimized version of the 5551 blitter as far as I know, not sure if that code is used normally, but easy to make it use it if it isn&#39;t).
</p></div></div><p>

I did some basic comparisons, running each test for approximately 10 to 15 seconds :</p><p>A5, blending enabled, memory source to backbuffer - average 2.24 fps :
</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="number">  2</span><span class="p">#include &lt;cstdio&gt;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="p">#include "allegro5/allegro.h"</span>
<span class="number">  5</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc , <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  8</span>   
<span class="number">  9</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">{</span>
<span class="number"> 10</span>      <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 11</span>   <span class="k2">}</span>
<span class="number"> 12</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 13</span>      <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 14</span>   <span class="k2">}</span>
<span class="number"> 15</span>   
<span class="number"> 16</span>   <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> disp <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"> 18</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>disp<span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 19</span>   
<span class="number"> 20</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a><span class="k3">*</span> timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>timer<span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</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/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> eq <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>eq<span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 25</span>   
<span class="number"> 26</span>   <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>eq , <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>disp<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>   <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>eq , <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>   <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>eq , <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>   
<span class="number"> 30</span>   <a href="http://www.allegro.cc/manual/al_set_new_bitmap_flags"><span class="a">al_set_new_bitmap_flags</span></a><span class="k2">(</span>ALLEGRO_MEMORY_BITMAP<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp <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">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>bmp<span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 33</span>   
<span class="number"> 34</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>bmp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</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"> 36</span>   
<span class="number"> 37</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><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>disp<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>   
<span class="number"> 39</span><span class="c">///   al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO);</span>
<span class="number"> 40</span>   
<span class="number"> 41</span>   <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</span>   
<span class="number"> 43</span>   <span class="k1">int</span> fps <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 44</span>   <span class="k1">int</span> totalfps <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 45</span>   <span class="k1">int</span> fpscount <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 46</span>   <span class="k1">bool</span> quit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 47</span>   
<span class="number"> 48</span>   <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>quit<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 49</span>      <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>eq<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 50</span>         <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number"> 51</span>         <a href="http://www.allegro.cc/manual/al_get_next_event"><span class="a">al_get_next_event</span></a><span class="k2">(</span>eq , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 52</span>         <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 53</span>            quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 54</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 55</span>         <span class="k2">}</span>
<span class="number"> 56</span>         <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 57</span>            <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 58</span>               quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 59</span>               <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 60</span>            <span class="k2">}</span>
<span class="number"> 61</span>         <span class="k2">}</span>
<span class="number"> 62</span>         <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 63</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"FPS : %i\n"</span> , fps<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 64</span>            totalfps <span class="k3">+</span><span class="k3">=</span> fps<span class="k2">;</span>
<span class="number"> 65</span>            <span class="k3">+</span><span class="k3">+</span>fpscount<span class="k2">;</span>
<span class="number"> 66</span>            fps <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 67</span>         <span class="k2">}</span>
<span class="number"> 68</span>      <span class="k2">}</span>
<span class="number"> 69</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>bmp , <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="number"> 70</span>      <span class="k3">+</span><span class="k3">+</span>fps<span class="k2">;</span>
<span class="number"> 71</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"> 72</span>   <span class="k2">}</span>
<span class="number"> 73</span>   
<span class="number"> 74</span>   <span class="k1">float</span> average <span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>totalfps<span class="k3">/</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>fpscount<span class="k2">;</span>
<span class="number"> 75</span>   <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Average fps : %f\n"</span> , average<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 76</span>   
<span class="number"> 77</span>   <a href="http://www.allegro.cc/manual/al_destroy_event_queue"><span class="a">al_destroy_event_queue</span></a><span class="k2">(</span>eq<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 78</span>   
<span class="number"> 79</span>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 80</span><span class="k2">}</span>
</div></div><p>

Uncomment the al_set_blender line above and you get :<br />A5, blending disabled, memory source to backbuffer - 144.68 fps.</p><p>Now draw to a memory bitmap instead of to the backbuffer :<br />A5, blending enabled, memory source to memory destination - 16.79 fps.</p><p>Disable blending and you get :<br />A5, blending disabled, memory source to memory destination - 353.68 fps.</p><p>Now for A4 :</p><p>A4, blending enabled using set_alpha_blender and draw_trans_sprite, memory source to screen - 2.58 fps
</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="number">  2</span>
<span class="number">  3</span><span class="p">#include &lt;cstdio&gt;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="p">#include &lt;allegro.h&gt;</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="k1">volatile</span> <span class="k1">int</span> ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  8</span><span class="k1">void</span> Ticker<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  9</span>   <span class="k3">+</span><span class="k3">+</span>ticks<span class="k2">;</span>
<span class="number"> 10</span><span class="k2">}</span>
<span class="number"> 11</span><a href="http://www.allegro.cc/manual/END_OF_FUNCTION"><span class="a">END_OF_FUNCTION</span></a><span class="k2">(</span>Ticker<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>
<span class="number"> 14</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc , <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 15</span>   
<span class="number"> 16</span>   <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/allegro_init"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 17</span>   
<span class="number"> 18</span>   <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/install_keyboard"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 19</span>   
<span class="number"> 20</span>   <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/install_timer"><span class="a">install_timer</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 21</span>   
<span class="number"> 22</span>   <a href="http://www.allegro.cc/manual/set_color_depth"><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>
<span class="number"> 23</span>   <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/set_gfx_mode"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT_WINDOWED , <span class="n">800</span> , <span class="n">600</span> , <span class="n">0</span> , <span class="n">0</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</span><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/BITMAP"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap"><span class="a">create_bitmap</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"> 26</span>   <a href="http://www.allegro.cc/manual/BITMAP"><span class="a">BITMAP</span></a><span class="k3">*</span> buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap"><span class="a">create_bitmap</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"> 27</span>   
<span class="number"> 28</span>   <a href="http://www.allegro.cc/manual/clear_to_color"><span class="a">clear_to_color</span></a><span class="k2">(</span>bmp , <a href="http://www.allegro.cc/manual/makeacol"><span class="a">makeacol</span></a><span class="k2">(</span><span class="n">127</span>,<span class="n">127</span>,<span class="n">127</span>,<span class="n">127</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>   
<span class="number"> 30</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>bmp <span class="k3">|</span><span class="k3">|</span> <span class="k3">!</span>buffer<span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 31</span>   
<span class="number"> 32</span>   <a href="http://www.allegro.cc/manual/set_alpha_blender"><span class="a">set_alpha_blender</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>   
<span class="number"> 34</span>   <a href="http://www.allegro.cc/manual/install_int_ex"><span class="a">install_int_ex</span></a><span class="k2">(</span>Ticker , BPS_TO_TIMER<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>   
<span class="number"> 36</span>   <span class="k1">int</span> fps <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 37</span>   <span class="k1">int</span> totalfps <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 38</span>   <span class="k1">int</span> fpscount <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 39</span>   
<span class="number"> 40</span>   <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 41</span>      <span class="k1">if</span> <span class="k2">(</span>ticks<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 42</span>         ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 43</span>         <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"FPS : %i\n"</span> , fps<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 44</span>         totalfps <span class="k3">+</span><span class="k3">=</span> fps<span class="k2">;</span>
<span class="number"> 45</span>         <span class="k3">+</span><span class="k3">+</span>fpscount<span class="k2">;</span>
<span class="number"> 46</span>         fps <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 47</span>      <span class="k2">}</span>
<span class="number"> 48</span>      <a href="http://www.allegro.cc/manual/draw_trans_sprite"><span class="a">draw_trans_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a> , bmp , <span class="n">0</span> , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 49</span>      <span class="k3">+</span><span class="k3">+</span>fps<span class="k2">;</span>
<span class="number"> 50</span>   <span class="k2">}</span>
<span class="number"> 51</span>   
<span class="number"> 52</span>   <span class="k1">float</span> average <span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>totalfps <span class="k3">/</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>fpscount<span class="k2">;</span>
<span class="number"> 53</span>   <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Average FPS : %f\n"</span> , average<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 54</span>   
<span class="number"> 55</span>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 56</span><span class="k2">}</span>
<span class="number"> 57</span><a href="http://www.allegro.cc/manual/END_OF_MAIN"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span>
</div></div><p>

Change the draw_trans_sprite call to blit and you get :<br />A4, blending disabled (using blit), memory source to screen - 113.74 fps.</p><p>A4, blending enabled , memory source to memory destination - 124.25 fps.</p><p>A4, blending disabled , memory source to memory destination - 595.79 fps.</p><p>So to sum it all up :
</p><pre>
Frames per second                       A5      |         A4
_____________________________________________________________________________
blending enabled, mem-&gt;screen  :       2.24     |        2.58
blending disabled, mem-&gt;screen :     144.68     |      113.74
blending enabled, mem-&gt;mem     :      16.79     |      124.25
blending disabled, mem-&gt;mem    :     353.68     |      595.79
</pre><p>

So Allegro 5 wins when blitting from memory to screen, but Allegro 4 wins when blitting or blending from memory to memory. It&#39;s pretty much a tie when blending from memory to screen, as they&#39;re both so slow as to be unusable.</p><p>However, Allegro 5 wins when it comes to hardware acceleration, so if all you need to use is video bitmaps then this probably doesn&#39;t matter to you.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 20 May 2011 08:39:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918203#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>blending enabled, mem-&gt;mem     :      16.79     |      124.25</p></div></div><p>This seems odd. Any reason why?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Fri, 20 May 2011 13:43:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Not sure. Here&#39;s the exact code to demonstrate it (blending enabled, mem to mem, A5) :
</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="number">  2</span><span class="p">#include &lt;cstdio&gt;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="p">#include "allegro5/allegro.h"</span>
<span class="number">  5</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc , <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  8</span>   
<span class="number">  9</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">{</span>
<span class="number"> 10</span>      <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 11</span>   <span class="k2">}</span>
<span class="number"> 12</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 13</span>      <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 14</span>   <span class="k2">}</span>
<span class="number"> 15</span>   
<span class="number"> 16</span>   <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> disp <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"> 18</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>disp<span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 19</span>   
<span class="number"> 20</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a><span class="k3">*</span> timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>timer<span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</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/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> eq <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>eq<span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 25</span>   
<span class="number"> 26</span>   <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>eq , <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>disp<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>   <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>eq , <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>   <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>eq , <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>   
<span class="number"> 30</span>   <a href="http://www.allegro.cc/manual/al_set_new_bitmap_flags"><span class="a">al_set_new_bitmap_flags</span></a><span class="k2">(</span>ALLEGRO_MEMORY_BITMAP<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp <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">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> buffer <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">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>bmp<span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 34</span>   
<span class="number"> 35</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>bmp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</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"> 37</span>   
<span class="number"> 38</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>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>   
<span class="number"> 40</span><span class="c">///   al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO);</span>
<span class="number"> 41</span>   
<span class="number"> 42</span>   <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</span>   
<span class="number"> 44</span>   <span class="k1">int</span> fps <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 45</span>   <span class="k1">int</span> totalfps <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 46</span>   <span class="k1">int</span> fpscount <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 47</span>   <span class="k1">bool</span> quit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 48</span>   
<span class="number"> 49</span>   <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>quit<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 50</span>      <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>eq<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 51</span>         <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number"> 52</span>         <a href="http://www.allegro.cc/manual/al_get_next_event"><span class="a">al_get_next_event</span></a><span class="k2">(</span>eq , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 53</span>         <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 54</span>            quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 55</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 56</span>         <span class="k2">}</span>
<span class="number"> 57</span>         <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 58</span>            <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 59</span>               quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 60</span>               <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 61</span>            <span class="k2">}</span>
<span class="number"> 62</span>         <span class="k2">}</span>
<span class="number"> 63</span>         <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 64</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"FPS : %i\n"</span> , fps<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 65</span>            totalfps <span class="k3">+</span><span class="k3">=</span> fps<span class="k2">;</span>
<span class="number"> 66</span>            <span class="k3">+</span><span class="k3">+</span>fpscount<span class="k2">;</span>
<span class="number"> 67</span>            fps <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 68</span>         <span class="k2">}</span>
<span class="number"> 69</span>      <span class="k2">}</span>
<span class="number"> 70</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>bmp , <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="number"> 71</span>      <span class="k3">+</span><span class="k3">+</span>fps<span class="k2">;</span>
<span class="number"> 72</span><span class="c">//      al_flip_display();</span>
<span class="number"> 73</span>   <span class="k2">}</span>
<span class="number"> 74</span>   
<span class="number"> 75</span>   <span class="k1">float</span> average <span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>totalfps<span class="k3">/</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>fpscount<span class="k2">;</span>
<span class="number"> 76</span>   <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Average fps : %f\n"</span> , average<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 77</span>   
<span class="number"> 78</span>   <a href="http://www.allegro.cc/manual/al_destroy_event_queue"><span class="a">al_destroy_event_queue</span></a><span class="k2">(</span>eq<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 79</span>   
<span class="number"> 80</span>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 81</span><span class="k2">}</span>
</div></div><p>

I can&#39;t debug it properly myself, because I&#39;m using the precompiled binaries and they refer to source code in a different directory than it really is.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 20 May 2011 14:30:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918200#target">Surt</a> said:</div><div class="quote"><p>The simplest solution (presuming you have permissions to do so) is to do a proper system install with a sudo make install which should put the headers in the proper place to be found by the compiler.</p></div></div><p>

This was definitely part of my problem. I net through the Wiki article many times and used the make install command just as it appeared, I went back to look at it today and there is a note that says it must be run with root privileges. I can&#39;t believe I missed that!</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918203#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>You need to add a compiler search directory to your project. Use Menu-&gt;Project-&gt;BuildOptions, select your main project (not the specific build type) and go to Search Directories-&gt;Compiler and add in the directory where you have your allegro headers.</p></div></div><p>

This was step 2 of three to get allegro working in Code::blocks in Ubuntu. Since I do not have my linux laptop with me I cannot recall what the third was exactly, a linker-option -lib allegro 5.0 or something similar. Once I have it I will upload these simple steps to the wiki so others might follow in my steps without as much frustration.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (sec_goat)</author>
		<pubDate>Fri, 20 May 2011 19:01:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918139#target">sec_goat</a> said:</div><div class="quote"><p>
I like the way this sounds, what did you use to make it? Also think you can make something more ambient and space themed? I am going to need a sound track for a future project I am planning for.
</p></div></div><p>

I&#39;m using FL Studio... Very expensive for just a hobbyist game developer... But I love music too, so I bought it not just for games...</p><p>If you show me your game and I have the time, why not? <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Fri, 20 May 2011 20:17:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607359/918240#target">AMCerasoli</a> said:</div><div class="quote"><p>I&#39;m using FL Studio... Very expensive for just a hobbyist game developer... But I love music too, so I bought it not just for games...If you show me your game and I have the time, why not? <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></p></div></div><p>

Well I think you do good work, and in a quiet a while, probably a couple years, when I am good enough to tackle the idea in my head, and I still remember this I will come look you up! <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (sec_goat)</author>
		<pubDate>Fri, 20 May 2011 21:07:47 +0000</pubDate>
	</item>
</rss>
