<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Full screen effects</title>
		<link>http://www.allegro.cc/forums/view/456370</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 02 Feb 2005 23:16:25 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, I&#39;m currently working on a 2d platform game with mouse aiming, in Contra style I guess. I&#39;m doing the animation and characters with clay and my digicam and the backgrounds with digicam pics. It is going to be locked at 800x600x32. I was thinking about doing some fancy fullscreen effects, rippling for explosions and such. My question is, would applying effects to the entire screen be way too slow? My target system will probably be 1ghz+ machines and I&#39;m developing on an athlon 64 at 4000+ speeds. Opinions?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dave McEnery)</author>
		<pubDate>Wed, 02 Feb 2005 07:28:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
My question is, would applying effects to the entire screen be way too slow?
</p></div></div><p>
Very much so, yes. If by &quot;rippling&quot; you mean bending everything. For that, I would strongly recommend using AllegroGL. If you were rendering on a texture, you could easily do a ripple effect by just splitting up the screen into multiple vertices and &quot;bending&quot; it.</p><p>Though, I really don&#39;t have the OpenGL experience to talk on the matter...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Wed, 02 Feb 2005 07:30:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>First of all to do things quickly you should focus on learning how to manipulate bitmaps by direct memory access through line pointers rather than get/putpixel.  Since your screen res and depth is known you can optimize your routines further.  You can do some pretty quick stuff, but you should set it up as so:</p><p>1. Render everything with no effects to a backbuffer.<br />2. Apply effects from backbuffer to the screen(meaning use your backbuffer as a base that filters through your effect algorithm which &quot;blits&quot; the backbuffer to the screen).  I guess what I&#39;m getting at is limit the amount of operations needed and memory used for the effect <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />  I&#39;ve seen some nice ripple effects done full screen at pretty decent speed in software so I wouldnt&#39; be too worried.</p><p>Even though you are developing on high end machines you need testers to test your program to see where it begins to degrade performance on slower machines.</p><p>[edit]<br />Chris I think OpenGL would be overkill but it&#39;s doable as well.</p><p>I have a small program I wrote which uses sin/cos to render an image sorta rippled, but it&#39;s not the effect you are looking for.  However it&#39;s important to know that instead of iterating through the pixels of the source and blitting them to the destination bitmap, you do the opposite, you iterate through the pixels of the destination and calculate which pixel from the source bitmap to place <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Wed, 02 Feb 2005 07:35:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi!</p><p>Well, I have an amd k6-2 500 I can test it on too. I guess I don&#39;t actually need to apply the effects to the entire screen, just read parts of the buffer near the explosions and do some warping. This is actually my first real project, I&#39;ve done lots of little demos and tests and such, but now I&#39;m focusing on putting an actual game together. I found allegro in the book &quot;Game Programming All In One&quot; by Thomson Course Technology... its about 700 pages. It&#39;s taught me a good amount but it doesn&#39;t get more complex than a 4 screen platform scrolling game using Mappy, so I&#39;m going to have to teach myself a lot. That&#39;s good though, I enjoy it. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> I used to program C and pascal when i was younger and I still know VB. I&#39;m new to C++ but I understand program structure so I&#39;m just learning the syntax.</p><p>I&#39;m really surprised at the speed and quality of the repsonses here <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /> glad to see its very lively and I think I&#39;ll be hanging out here. Is there a popular allegro IRC channel?</p><p>Thanks!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dave McEnery)</author>
		<pubDate>Wed, 02 Feb 2005 08:03:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
2. Apply effects from backbuffer to the screen
</p></div></div><p>
It might be faster to do that to another memory buffer and just blitting to the screen in one linear block.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Chris I think OpenGL would be overkill but it&#39;s doable as well.
</p></div></div><p>
Well, when I think ripple, I think the whole screen moving on the Z axis in a kind of puddle (of water) effect. So I figured OpenGL (in addition to its raw speed) would allow easy 3-D transformations.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Wed, 02 Feb 2005 08:12:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>freenode #allegro <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />  Yes allegro is very active actually...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Wed, 02 Feb 2005 09:36:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>&quot;active&quot; yes - &quot;quality of responses&quot; no</p><p>If we have anything REALLY worth saying we put it on the record here <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matt Smith)</author>
		<pubDate>Wed, 02 Feb 2005 10:18:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well in Off Topic most of the responses are pure crap, no offense to anyone.  But in the Programming topic there are usually pretty straight forward answers like RTFM, etc <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Wed, 02 Feb 2005 10:40:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>First of all to do things quickly you should focus on learning how to manipulate bitmaps by direct memory access through line pointers rather than get/putpixel.</p></div></div><p>
Is there actually any reason to learn using this? Doing fullscreen effects in software seems to be a bit ancient technology now. We have GPUs, you know. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> Apart from this, accessing image memory may be useful for advanced effects, but in most cases pure OpenGL is enough to do most things. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Krzysztof Kluczek)</author>
		<pubDate>Wed, 02 Feb 2005 16:59:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Is there actually any reason to learn using this? Doing fullscreen effects in software seems to be a bit ancient technology now. We have GPUs, you know. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> Apart from this, accessing image memory may be useful for advanced effects, but in most cases pure OpenGL is enough to do most things. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div></div><p>

Knowledge is power.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Sirocco)</author>
		<pubDate>Wed, 02 Feb 2005 21:27:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
But in the Programming topic there are usually pretty straight forward answers like RTFM,
</p></div></div><p>
I take slight offense to that. As far as I can remember, anyone who ever says &quot;RTFM&quot; is either joking, or puts a useful link in it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Wed, 02 Feb 2005 21:43:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Don&#39;t take offense... if you notice I used <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Wed, 02 Feb 2005 22:08:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can&#39;t just say &quot;no offense&quot; and say whatever you want. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> &quot;No offense, but obviously, your mother liked to drop you.&quot; </p><p>p.s. I&#39;m not saying that to you, I&#39;m just making a point.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Wed, 02 Feb 2005 22:54:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
You can&#39;t just say &quot;no offense&quot; and say whatever you want.
</p></div></div><p>
Sure you can, especially with an added smiley.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (razor)</author>
		<pubDate>Wed, 02 Feb 2005 23:03:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can say that only in a warm, tight and loving community like Allegro.cc <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ron Ofir)</author>
		<pubDate>Wed, 02 Feb 2005 23:16:25 +0000</pubDate>
	</item>
</rss>
