<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Fading</title>
		<link>http://www.allegro.cc/forums/view/589913</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 08 Feb 2007 19:53:50 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>How can I do a fade in or fade out when I&#39;m not using a palette? Also, how can I do a day/night cycle where the screen slowly darkens to night when I&#39;m not using a palette?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Black)</author>
		<pubDate>Mon, 05 Feb 2007 19:53:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The easiest way is to draw a transparent black rectangle over the screen (buffer).</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> alpha <span class="k3">=</span> <span class="n">128</span><span class="k2">;</span> <span class="c">//arbitrary value for demonstration purposes</span>

<a href="http://www.allegro.cc/manual/drawing_mode" target="_blank"><span class="a">drawing_mode</span></a><span class="k2">(</span>DRAW_MODE_TRANS<span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/set_trans_blender" target="_blank"><span class="a">set_trans_blender</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, alpha<span class="k2">)</span><span class="k2">;</span>

<a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, <span class="n">0</span>, <span class="n">0</span>, buffer-&gt;w, buffer-&gt;h, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</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/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <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>
</pre></div></div><p>


</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Also, how can I do a day/night cycle where the screen slowly darkens to night when I&#39;m not using a palette?
</p></div></div><p>
Depends on what kind of effect you&#39;re after. For a simple &quot;everything turns darker&quot; effect, see the code snippet above.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Mon, 05 Feb 2007 20:03:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Okay, in 16 bit mode I thought there wasn&#39;t an alpha value. I should have mentioned that I&#39;m using a 16 bit color depth. Will that still work?</p><p>And the day/night cycle needs to fade to night, where the colors are darker and seem more bluish, and then back to day. I could have separate tiles for day and night, but there would be problems during the transition. Whatever I do has to be fast enough to run during game play.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Black)</author>
		<pubDate>Mon, 05 Feb 2007 20:56:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Okay, in 16 bit mode I thought there wasn&#39;t an alpha value.
</p></div></div><p>There isn&#39;t, that&#39;s why you have to supply it separately. In 32bpp you could have the alpha values stored in the bitmap.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kauhiz)</author>
		<pubDate>Mon, 05 Feb 2007 21:08:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><span class="k1">const</span> <span class="k1">int</span> cycles <span class="k3">=</span> <span class="n">60</span> <span class="k3">*</span> <span class="n">3</span><span class="k2">;</span>
<span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span><span class="k3">=</span> cycles<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
 conf.beginScene<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
 drawGame<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
 Bitmap::rect<span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">640</span>, <span class="n">480</span>, Tint<span class="k2">(</span><span class="n">1</span>, <span class="n">1</span>, <span class="n">1</span>, <span class="k1">float</span><span class="k2">(</span>i<span class="k2">)</span> <span class="k3">/</span> cycles<span class="k2">)</span><span class="k2">;</span>
 conf.flip<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Tue, 06 Feb 2007 02:17:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>okay, dustin dettmer, you have several things I&#39;ve never seen before in that code snippet, like Tint(...). is that an allegro function or just something you wrote that does what gnolam said? I also don&#39;t know what conf.beginScene() or <br />conf.flip() do. But I do understand the general idea... I think. I&#39;d better do some experimenting.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Black)</author>
		<pubDate>Tue, 06 Feb 2007 20:53:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It looks like openlayer thing.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Tue, 06 Feb 2007 21:22:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Openlayer? oh crap, more things-I-don&#39;t-understand-but-need-to! I thought I was through with that after I learned to tie my own shoes when I was 17 <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Black)</author>
		<pubDate>Tue, 06 Feb 2007 21:27:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Its actually from the <a href="http://www.allegro.cc/forums/thread/589392">Thing</a> library.  Which will soon be merged with OL (aka once I get some free time).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Wed, 07 Feb 2007 07:20:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>In 16-bit you can basically do a fast fade by packing two bytes into a 32-bit register.  Here is the code I used:
</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">void</span> Fade16<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>src, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>dest, <span class="k1">int</span> frame, <span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">2</td><td>      <span class="k1">unsigned</span> <span class="k1">long</span><span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_642.html" target="_blank">read</a><span class="k2">;</span></td></tr><tr><td class="number">3</td><td>      <span class="k1">unsigned</span> <span class="k1">long</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_866.html" target="_blank">write</a><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>      <span class="k1">register</span> <span class="k1">unsigned</span> <span class="k1">long</span> c1, c2<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>      <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_ex" target="_blank"><span class="a">create_bitmap_ex</span></a><span class="k2">(</span><span class="n">16</span>, src-&gt;w, src-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>      <span class="k1">int</span> i, j<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>      <span class="k1">int</span> wid <span class="k3">=</span> src-&gt;w<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>      <a href="http://www.allegro.cc/manual/acquire_bitmap" target="_blank"><span class="a">acquire_bitmap</span></a><span class="k2">(</span>tmp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>      <span class="k1">for</span><span class="k2">(</span>j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> src-&gt;h<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>j<span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">10</td><td>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_642.html" target="_blank">read</a> <span class="k3">=</span> <span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">long</span><span class="k3">*</span><span class="k2">)</span>src-&gt;line<span class="k2">[</span>j<span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_866.html" target="_blank">write</a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/bmp_write_line" target="_blank"><span class="a">bmp_write_line</span></a><span class="k2">(</span>tmp, j <span class="k3">+</span> y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>            <span class="k1">for</span> <span class="k2">(</span>i <span class="k3">=</span> wid<span class="k2">;</span> i<span class="k2">;</span> i-<span class="k3">=</span><span class="n">2</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">13</td><td>                  <span class="c">// get two pixels;</span></td></tr><tr><td class="number">14</td><td>                  c1 <span class="k3">=</span> <span class="k3">*</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_642.html" target="_blank">read</a><span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>                  c2 <span class="k3">=</span> c1 <span class="k3">&amp;</span> <span class="n">0x7E0F81F</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>                  c1 <span class="k3">&amp;</span><span class="k3">=</span> <span class="n">0xF81F07E0</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>                  <span class="c">// c1 / 32 * frame... then mask out the color components... </span></td></tr><tr><td class="number">18</td><td>                  c1 <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>c1 <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">5</span><span class="k2">)</span> <span class="k3">*</span> frame<span class="k2">)</span> <span class="k3">&amp;</span> <span class="n">0xF81F07E0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>                  <span class="c">// c2 * frame / 32... then mask out the color components... </span></td></tr><tr><td class="number">20</td><td>                  c2 <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>c2 <span class="k3">*</span> frame<span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">5</span><span class="k2">)</span> <span class="k3">&amp;</span> <span class="n">0x07E0F81F</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>                  bmp_write32<span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_866.html" target="_blank">write</a> <span class="k3">+</span> x, <span class="k2">(</span> c1 <span class="k3">|</span> c2 <span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>                  <a href="http://www.delorie.com/djgpp/doc/libc/libc_866.html" target="_blank">write</a><span class="k3">+</span><span class="k3">=</span><span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>            <span class="k2">}</span></td></tr><tr><td class="number">24</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">25</td><td>      <a href="http://www.allegro.cc/manual/bmp_unwrite_line" target="_blank"><span class="a">bmp_unwrite_line</span></a><span class="k2">(</span>tmp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>      <a href="http://www.allegro.cc/manual/release_bitmap" target="_blank"><span class="a">release_bitmap</span></a><span class="k2">(</span>tmp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>      <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>tmp, dest, <span class="n">0</span>, <span class="n">0</span>, x, y, tmp-&gt;w, tmp-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>      <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>tmp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
Well maybe not... I think I had a better function that didn&#39;t require a temporary bitmap... but meh?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Wed, 07 Feb 2007 08:11:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>fblend<br /><a href="http://bob.allegronetwork.com/">http://bob.allegronetwork.com/</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Wed, 07 Feb 2007 15:07:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Gnolam&#39;s method seems to be the easiest, so I tried it first. Works perfectly! Thanks guys
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Black)</author>
		<pubDate>Thu, 08 Feb 2007 19:53:50 +0000</pubDate>
	</item>
</rss>
