<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>How to draw an opaque, screen-sized, black rectangle?</title>
		<link>http://www.allegro.cc/forums/view/589550</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 16 Jan 2007 07:28:10 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hey all,</p><p>I have a game in development and to add a more professional touch I want it so when certain messages appear to the player, and when the user pauses the game, etc, the following should happen:</p><p>1. a black rectangle at 50% opacity should fill the entire screen<br />2. text should be displayed at 100% opacity on top of said rectangle<br />3. the game should pause until a key [P] is pressed</p><p>I have #3 done as the following:
</p><div class="source-code snippet"><div class="inner"><pre>        <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_P<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span> <span class="c">// pause </span>
                        <span class="k1">if</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a> <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">100</span><span class="k2">)</span><span class="k2">;</span>
                        <span class="c">//if (pause) pause = false; rest(100)</span>
                        <span class="k2">}</span>
        
        <span class="k1">if</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a><span class="k2">)</span> <span class="k2">{</span> 
                   <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_P<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
                                   <span class="c">// paused!</span>
                                   <span class="k2">}</span>
                   <a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">100</span><span class="k2">)</span><span class="k2">;</span>
                   <span class="k2">}</span>
</pre></div></div><p>

how would i go about drawing a large black opaque rectangle though - i don&#39;t know how to do opacity in allegro!</p><p>thanks for your help, cameron
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (cameron)</author>
		<pubDate>Sat, 13 Jan 2007 22:40:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Actually, you apparently <b>don&#39;t</b> want an opaque rectangle - opaque means 100% opacity <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />. What you want is transcluency. Just look in the manual. A word of warning; trancluency is slow if you&#39;re using plain allegro! Since you&#39;re pausing the game you might get away with only doing the transcluent blit once, though, since the screen won&#39;t change.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kauhiz)</author>
		<pubDate>Sat, 13 Jan 2007 22:43:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>To be specific, look up
</p><div class="source-code snippet"><div class="inner"><pre><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="k2">)</span>
<a href="http://www.allegro.cc/manual/drawing_mode" target="_blank"><span class="a">drawing_mode</span></a><span class="k2">(</span><span class="k2">)</span>
</pre></div></div><p>

BTW, the rest()s in your code concern me. You&#39;re not doing your game timing with rest(), are you?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Sat, 13 Jan 2007 22:56:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>try messin around with this stuff use a square spite or drawRectangle
</p><div class="source-code snippet"><div class="inner"><pre> <span class="c">/* Some one time initialisation code. */</span>
      <a href="http://www.allegro.cc/manual/COLOR_MAP" target="_blank"><span class="a">COLOR_MAP</span></a> global_trans_table<span class="k2">;</span>
      <a href="http://www.allegro.cc/manual/create_trans_table" target="_blank"><span class="a">create_trans_table</span></a><span class="k2">(</span><span class="k3">&amp;</span>global_trans_table, my_palette,
       <span class="n">128</span>, <span class="n">128</span>, <span class="n">128</span>, NULL<span class="k2">)</span><span class="k2">;</span>
      ...
      <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/get_color_depth" target="_blank"><span class="a">get_color_depth</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">8</span><span class="k2">)</span>
   <a href="http://www.allegro.cc/manual/color_map" target="_blank"><span class="a">color_map</span></a> <span class="k3">=</span> <span class="k3">&amp;</span>global_trans_table<span class="k2">;</span>
      <span class="k1">else</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">128</span>, <span class="n">128</span>, <span class="n">128</span>, <span class="n">128</span><span class="k2">)</span><span class="k2">;</span>



      <a href="http://www.allegro.cc/manual/draw_trans_sprite" target="_blank"><span class="a">draw_trans_sprite</span></a><span class="k2">(</span>buffer, ghost_sprite, x, y<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
makeacol32<br />Converts an RGBA color into a 32-bit display pixel format.<br />Description<br />int makeacol32(int r, int g, int b, int a); <br />drawRectangle
</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="c">// draw a rectangle</span></td></tr><tr><td class="number">2</td><td><span class="c">// since we use it three times in the editor, it would be nice to have</span></td></tr><tr><td class="number">3</td><td><span class="c">// a function for it.</span></td></tr><tr><td class="number">4</td><td><span class="k1">void</span> drawRectangle<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp,<span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> w,<span class="k1">int</span> h,<span class="k1">int</span> color, <span class="k1">int</span> style, <span class="k1">int</span> bgcolor<span class="k2">)</span></td></tr><tr><td class="number">5</td><td><span class="k2">{</span></td></tr><tr><td class="number">6</td><td>  w--<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>  h--<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>  <span class="k1">if</span> <span class="k2">(</span>style<span class="k3">=</span><span class="k3">=</span><span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">9</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">10</td><td>    <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span>bmp,x,y,y<span class="k3">+</span>h,color<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>    <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span>w,y,y<span class="k3">+</span>h,color<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>    <a href="http://www.allegro.cc/manual/hline" target="_blank"><span class="a">hline</span></a><span class="k2">(</span>bmp,x,y,x<span class="k3">+</span>w,color<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>    <a href="http://www.allegro.cc/manual/hline" target="_blank"><span class="a">hline</span></a><span class="k2">(</span>bmp,x,y<span class="k3">+</span>h,x<span class="k3">+</span>w,color<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">15</td><td>  <span class="k1">if</span> <span class="k2">(</span>style<span class="k3">=</span><span class="k3">=</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">16</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">17</td><td>    <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>bmp,x,y,x<span class="k3">+</span>w,y<span class="k3">+</span>h,bgcolor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>    <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span>bmp,x,y,y<span class="k3">+</span>h,color<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span>w,y,y<span class="k3">+</span>h,color<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>    <a href="http://www.allegro.cc/manual/hline" target="_blank"><span class="a">hline</span></a><span class="k2">(</span>bmp,x,y,x<span class="k3">+</span>w,color<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>    <a href="http://www.allegro.cc/manual/hline" target="_blank"><span class="a">hline</span></a><span class="k2">(</span>bmp,x,y<span class="k3">+</span>h,x<span class="k3">+</span>w,color<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">23</td><td>&#160;</td></tr><tr><td class="number">24</td><td>&#160;</td></tr><tr><td class="number">25</td><td>  <span class="c">// this is for our dialog. This draws a box with rounded corners.</span></td></tr><tr><td class="number">26</td><td>  <span class="k1">if</span> <span class="k2">(</span>style<span class="k3">=</span><span class="k3">=</span><span class="n">2</span><span class="k2">)</span></td></tr><tr><td class="number">27</td><td>  <span class="k2">{</span>                  </td></tr><tr><td class="number">28</td><td>    <a href="http://www.allegro.cc/manual/arc" target="_blank"><span class="a">arc</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span><span class="n">10</span>,y<span class="k3">+</span><span class="n">10</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">64</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">128</span><span class="k2">)</span>,<span class="n">10</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>    <a href="http://www.allegro.cc/manual/arc" target="_blank"><span class="a">arc</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span><span class="n">10</span>,y<span class="k3">+</span>h-10,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">128</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">192</span><span class="k2">)</span>,<span class="n">10</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>    <a href="http://www.allegro.cc/manual/arc" target="_blank"><span class="a">arc</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span>w-10,y<span class="k3">+</span><span class="n">10</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">64</span><span class="k2">)</span>,<span class="n">10</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>    <a href="http://www.allegro.cc/manual/arc" target="_blank"><span class="a">arc</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span>w-10,y<span class="k3">+</span>h-10,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">192</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">256</span><span class="k2">)</span>,<span class="n">10</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>&#160;</td></tr><tr><td class="number">33</td><td>&#160;</td></tr><tr><td class="number">34</td><td>    <a href="http://www.allegro.cc/manual/hline" target="_blank"><span class="a">hline</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span><span class="n">10</span>,y,x<span class="k3">+</span>w-10,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>    <a href="http://www.allegro.cc/manual/hline" target="_blank"><span class="a">hline</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span><span class="n">10</span>,y<span class="k3">+</span>h,x<span class="k3">+</span>w-10,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>    <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span>bmp,x,y<span class="k3">+</span><span class="n">10</span>,y<span class="k3">+</span>h-10,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>    <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span>w,y<span class="k3">+</span><span class="n">10</span>,y<span class="k3">+</span>h-10,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>  </td></tr><tr><td class="number">39</td><td>    <a href="http://www.allegro.cc/manual/floodfill" target="_blank"><span class="a">floodfill</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span>w<span class="k3">/</span><span class="n">2</span>,y<span class="k3">+</span>h<span class="k3">/</span><span class="n">2</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>&#160;</td></tr><tr><td class="number">41</td><td>    <a href="http://www.allegro.cc/manual/arc" target="_blank"><span class="a">arc</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span><span class="n">10</span>,y<span class="k3">+</span><span class="n">10</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">64</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">128</span><span class="k2">)</span>,<span class="n">8</span>,bgcolor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>    <a href="http://www.allegro.cc/manual/arc" target="_blank"><span class="a">arc</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span><span class="n">10</span>,y<span class="k3">+</span>h-10,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">128</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">192</span><span class="k2">)</span>,<span class="n">8</span>,bgcolor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">43</td><td>    <a href="http://www.allegro.cc/manual/arc" target="_blank"><span class="a">arc</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span>w-10,y<span class="k3">+</span><span class="n">10</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">64</span><span class="k2">)</span>,<span class="n">8</span>,bgcolor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>    <a href="http://www.allegro.cc/manual/arc" target="_blank"><span class="a">arc</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span>w-10,y<span class="k3">+</span>h-10,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">192</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="n">256</span><span class="k2">)</span>,<span class="n">8</span>,bgcolor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td>&#160;</td></tr><tr><td class="number">46</td><td>&#160;</td></tr><tr><td class="number">47</td><td>    <a href="http://www.allegro.cc/manual/hline" target="_blank"><span class="a">hline</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span><span class="n">10</span>,y<span class="k3">+</span><span class="n">2</span>,x<span class="k3">+</span>w-10,bgcolor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">48</td><td>    <a href="http://www.allegro.cc/manual/hline" target="_blank"><span class="a">hline</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span><span class="n">10</span>,y<span class="k3">+</span>h-2,x<span class="k3">+</span>w-10,bgcolor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>    <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span><span class="n">2</span>,y<span class="k3">+</span><span class="n">10</span>,y<span class="k3">+</span>h-10,bgcolor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>    <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span>w-2,y<span class="k3">+</span><span class="n">10</span>,y<span class="k3">+</span>h-10,bgcolor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">51</td><td>&#160;</td></tr><tr><td class="number">52</td><td>    <a href="http://www.allegro.cc/manual/floodfill" target="_blank"><span class="a">floodfill</span></a><span class="k2">(</span>bmp,x<span class="k3">+</span>w<span class="k3">/</span><span class="n">2</span>,y<span class="k3">+</span>h<span class="k3">/</span><span class="n">2</span>,bgcolor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">54</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (piccolo)</author>
		<pubDate>Sat, 13 Jan 2007 23:02:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>piccolo strikes again! Seriously, that&#39;s the clumsiest way to draw rectangles in Allegro that <i>I&#39;ve ever seen</i>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Sat, 13 Jan 2007 23:30:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>gnolam, yes, i am. this is my second game ever. (first was pong) i have a lot to learn.</p><p>piccolo i am confused as to how to use that.. (and why not just use rectfill() )</p><p>and thanks for all the help guys.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (cameron)</author>
		<pubDate>Sat, 13 Jan 2007 23:46:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><a href="http://alleg.sourceforge.net/stabledocs/en/faq.html#How_can_I_make_my_game_run_at_the_same_speed_on_any_computer_">Allegro FAQ to the rescue!</a></p><p>Implement that. Please. Friends don&#39;t let friends do rest() timing.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Sat, 13 Jan 2007 23:49:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Exactly! Timed game loops saved two of my best games from the recycle bin! <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kikaru)</author>
		<pubDate>Sun, 14 Jan 2007 00:03:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>gnolam, i have implemented the counter as you suggested, still not sure what to do in relation to the black-transparency screen problem. i looked at the docu, i guess i just don&#39;t know enough about allegro and it&#39;s functions to mess with it yet.</p><p>thanks guys. oh, and what is the primary benefits to doing this counter over rest()?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (cameron)</author>
		<pubDate>Sun, 14 Jan 2007 00:55:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
gnolam, i have implemented the counter as you suggested, still not sure what to do in relation to the black-transparency screen problem. i looked at the docu, i guess i just don&#39;t know enough about allegro and it&#39;s functions to mess with it yet.
</p></div></div><p>
Well, what&#39;s the problem?</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
thanks guys. oh, and what is the primary benefits to doing this counter over rest()?
</p></div></div><p>
The timer-based method actually <i>works</i>. rest() will, at best, work on <i>one</i> computer - yours.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Sun, 14 Jan 2007 01:00:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Rest works like this:
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">//loop took 5 milliseconds</span>
<a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">20</span><span class="k2">)</span> <span class="c">//rest for 20 milliseconds</span>
<span class="c">//total time: 25 milliseconds</span>
</pre></div></div><p>

Timed Loops work like this:
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">//loop took 5 milliseconds</span>
<span class="k1">while</span> <span class="k2">(</span>timer <span class="k3">&lt;</span> loop_start<span class="k3">+</span><span class="n">20</span><span class="k2">)</span><span class="k2">{</span><span class="k2">}</span><span class="k2">;</span> <span class="c">//waits until it was been at least 20 </span>
<span class="c">//milliseconds since the START of the loop</span>
<span class="c">//total time: 20 milliseconds</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kikaru)</author>
		<pubDate>Sun, 14 Jan 2007 01:07:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
//loop took 5 milliseconds<br />rest(20) //rest for 20 milliseconds<br />//total time: 25 milliseconds
</p></div></div><p>

That&#39;s providing of course the loop takes 5 miliseconds, which it won&#39;t on all machines. Which is why you don&#39;t use rest() for timing.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Sun, 14 Jan 2007 03:57:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>thanks for the explanation. I&#39;m now rest()-free.</p><p>il update you on the black screen thing tomorrow.. i&#39;m off to bed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (cameron)</author>
		<pubDate>Sun, 14 Jan 2007 10:55:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
1. a black rectangle at 50% opacity should fill the entire screen
</p></div></div><p>
An old-school (and cheap) way of getting this effect is to use dithering: turn alternate pixels black in a checkerboard pattern. If your resolution is high enough, the difference is not noticable unless you look closely. You could even make this an option.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sun, 14 Jan 2007 16:11:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>that can be done something like this.</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>&#160;</td></tr><tr><td class="number">2</td><td><span class="k1">void</span> do_trans<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>dest<span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>    <span class="k1">int</span> color <span class="k3">=</span> <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></td></tr><tr><td class="number">4</td><td>    <span class="k1">int</span> fourth_width <span class="k3">=</span> dest-&gt;w<span class="k3">/</span><span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span><span class="k3">=</span> dest-&gt;h<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>y<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">6</td><td>        <span class="k1">unsigned</span> <span class="k1">short</span> <span class="k3">*</span>pixel_ptr <span class="k3">=</span> <span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">short</span> <span class="k3">*</span><span class="k2">)</span>dest-&gt;line<span class="k2">[</span>y<span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>        <span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>        <span class="k1">if</span><span class="k2">(</span> y <span class="k3">&amp;</span> <span class="n">1</span> <span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">9</td><td>            <span class="k3">+</span><span class="k3">+</span>x<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>            <span class="k3">+</span><span class="k3">+</span>pixel_ptr<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">12</td><td>        <span class="k1">for</span><span class="k2">(</span><span class="k2">;</span> x <span class="k3">&lt;</span><span class="k3">=</span> fourth_width<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>x <span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">13</td><td>            <span class="c">//*pixel_ptr = color;</span></td></tr><tr><td class="number">14</td><td>            pixel_ptr <span class="k3">+</span><span class="k3">=</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">16</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">17</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
edited
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (piccolo)</author>
		<pubDate>Sun, 14 Jan 2007 21:55:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Nope - that masks out alternate scanlines (and can therefore be optimised considerably). That could also work to achieve the same effect though..
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sun, 14 Jan 2007 22:44:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>yeah i fix the color from 255 0 255 to 0 0 0
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (piccolo)</author>
		<pubDate>Sun, 14 Jan 2007 22:48:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>A lot of the video cut scenes from mid-90&#39;s games such as Tomb Raider I used alternate scan lines to improve frame rate, it&#39;d look much better with higher resolutions but still a bit dark.  In other words, half the scan lines were black and built to stay that way.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Sun, 14 Jan 2007 23:16:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
That&#39;s providing of course the loop takes 5 milliseconds, which it won&#39;t on all machines. Which is why you don&#39;t use rest() for timing.
</p></div></div><p>
It&#39;s called an &quot;example&quot;. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kikaru)</author>
		<pubDate>Mon, 15 Jan 2007 02:06:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
It&#39;s called an &quot;example&quot;.
</p></div></div><p>

I&#39;m aware of that.  But your example doesn&#39;t explain very well why not to use rest().
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Mon, 15 Jan 2007 02:11:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Anything wrong with taking a screenshot of the game, tinting it, and displaying that?</p><p>As for code that will do this... ugh.. (/me goes to lookup random source code...)</p><p>Alright found it.  Heres some code i found in old code and (lucky you) rewritten for your uses!
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">// If howMuch is 1, dest is turned black.  If howMuch is 0, dest is left unchanged</span>
<span class="k1">void</span> shade<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>dest, <span class="k1">float</span> howMuch<span class="k2">)</span>
<span class="k2">{</span>
    <span class="k1">const</span> <span class="k1">int</span> val <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span>howMuch <span class="k3">*</span> <span class="n">0xff</span><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">0xff</span>, <span class="n">0xff</span>, <span class="n">0xff</span>, val<span class="k2">)</span><span class="k2">;</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="n">0</span>, <span class="n">0</span>, <span class="n">0</span><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>dest, <span class="n">0</span>, <span class="n">0</span>, dest-&gt;w, dest-&gt;h, <a href="http://www.allegro.cc/manual/makeacol32" target="_blank"><span class="a">makeacol32</span></a><span class="k2">(</span><span class="n">0xff</span>, <span class="n">0xff</span>, <span class="n">0xff</span>, val<span class="k2">)</span><span class="k2">)</span><span class="k2">;</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_SOLID, <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>
</pre></div></div><p>

Shesh I spend more time writing code in this little a.cc textbox then I do anywhere else.</p><p>Example usage:
</p><div class="source-code snippet"><div class="inner"><pre>.. blah draw to <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a> ..

shade<span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, .<span class="n">5</span><span class="k2">)</span><span class="k2">;</span>

.. blah draw <a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a> crap to <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a> ..
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Mon, 15 Jan 2007 09:17:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Anything wrong with taking a screenshot of the game, tinting it, and displaying that?
</p></div></div><p>
It&#39;s much more work than just drawing a DRAW_MODE_TRANS rectfill() over the buffer?</p><p>[EDIT]
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
rectfill(dest, 0, 0, dest-&gt;w, dest-&gt;h, makeacol32(0xff, 0xff, 0xff, val));
</p></div></div><p>
... and that alpha is completely unnecessary.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Mon, 15 Jan 2007 19:26:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The docs don&#39;t really say so I just put the alpha value everywhere I could.  Never actually tested which one is actually used.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Tue, 16 Jan 2007 07:28:10 +0000</pubDate>
	</item>
</rss>
