<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Black screen</title>
		<link>http://www.allegro.cc/forums/view/582672</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 02 May 2006 14:37:46 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Alright, I have code posted below which is currently supposed to be drawing an image to a buffer, then drawing the buffer to the screen. My problem is that the buffer only appears as black, any ideas?</p><p>EDIT: Okay, it appears that everything drawn to the screen is appearing black, what could be causing this?
</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">//this is so we can use Allegro</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="c">//our main method</span></td></tr><tr><td class="number">5</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">6</td><td><span class="k2">{</span></td></tr><tr><td class="number">7</td><td>    <span class="c">//set the colour depth</span></td></tr><tr><td class="number">8</td><td>    <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>    <span class="c">//this initilises Allegro</span></td></tr><tr><td class="number">10</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><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">return</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">14</td><td>    </td></tr><tr><td class="number">15</td><td>    <span class="c">//here we set up a new window to use</span></td></tr><tr><td class="number">16</td><td>    <span class="c">//the first parameter is the driver we're using</span></td></tr><tr><td class="number">17</td><td>    <span class="c">//the next 2 specify height and width</span></td></tr><tr><td class="number">18</td><td>    <span class="c">//the last 2 are for memory allocation</span></td></tr><tr><td class="number">19</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT, <span class="n">640</span>, <span class="n">480</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></td></tr><tr><td class="number">20</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">21</td><td>        <span class="c">//should te above fail, we want to try and set it using SAFE mode</span></td></tr><tr><td class="number">22</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_SAFE, <span class="n">640</span>, <span class="n">480</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></td></tr><tr><td class="number">23</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">24</td><td>            <span class="c">//and if that fails we want to tell the suer why the program will not work</span></td></tr><tr><td class="number">25</td><td>            <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_TEXT, <span class="n">0</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">26</td><td>            <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Unable to initiate any graphics mode!\n$s\n"</span>, <a href="http://www.allegro.cc/manual/allegro_error" target="_blank"><span class="a">allegro_error</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>            <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">29</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">30</td><td>    </td></tr><tr><td class="number">31</td><td>    <span class="c">//sets the colour palette</span></td></tr><tr><td class="number">32</td><td>    <a href="http://www.allegro.cc/manual/set_palette" target="_blank"><span class="a">set_palette</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/default_palette" target="_blank"><span class="a">default_palette</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>    </td></tr><tr><td class="number">34</td><td>    <span class="c">//clear the screen to be entirely white</span></td></tr><tr><td class="number">35</td><td>    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>    </td></tr><tr><td class="number">37</td><td>    <span class="c">//on windows it is faster if you aquire the screen before drawing to it</span></td></tr><tr><td class="number">38</td><td>    <a href="http://www.allegro.cc/manual/acquire_screen" target="_blank"><span class="a">acquire_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>    </td></tr><tr><td class="number">40</td><td>    <span class="c">//this installs the keyboard driver so we can use it</span></td></tr><tr><td class="number">41</td><td>    <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>    </td></tr><tr><td class="number">43</td><td>    <span class="c">//alright, this is where I'm declaring and creating some bitmaps to use</span></td></tr><tr><td class="number">44</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>ball, <span class="k3">*</span>ground, <span class="k3">*</span>sky<span class="k2">;</span></td></tr><tr><td class="number">45</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">46</td><td>    </td></tr><tr><td class="number">47</td><td>    ball <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">48</td><td>    ground <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>    sky <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>    buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">51</td><td>    </td></tr><tr><td class="number">52</td><td>    ball <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bmp" target="_blank"><span class="a">load_bmp</span></a><span class="k2">(</span><span class="s">"ball.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>    ground <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bmp" target="_blank"><span class="a">load_bmp</span></a><span class="k2">(</span><span class="s">"ground.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>    sky <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bmp" target="_blank"><span class="a">load_bmp</span></a><span class="k2">(</span><span class="s">"ground.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">55</td><td>    </td></tr><tr><td class="number">56</td><td>    <span class="c">//these 2 vars are for the ball's X and Y position</span></td></tr><tr><td class="number">57</td><td>    <span class="k1">int</span> ball_x, ball_y<span class="k2">;</span></td></tr><tr><td class="number">58</td><td>    <span class="c">//giving them default values</span></td></tr><tr><td class="number">59</td><td>    ball_x <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span></td></tr><tr><td class="number">60</td><td>    ball_y <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>    </td></tr><tr><td class="number">62</td><td>    <span class="c">//drawing everything to the buffer</span></td></tr><tr><td class="number">63</td><td>    <span class="c">//most of the screen will be the sky</span></td></tr><tr><td class="number">64</td><td>    <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> <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a> <span class="k3">-</span> <span class="n">100</span><span class="k2">;</span> i <span class="k3">=</span> i <span class="k3">+</span> <span class="n">20</span><span class="k2">)</span></td></tr><tr><td class="number">65</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">66</td><td>        <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">20</span><span class="k2">;</span> j <span class="k3">=</span> j <span class="k3">+</span> <span class="n">20</span><span class="k2">)</span></td></tr><tr><td class="number">67</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">68</td><td>            <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, sky, i, j<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>            <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>, <span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">71</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">72</td><td>    </td></tr><tr><td class="number">73</td><td>    <span class="c">//you have to release the screen before calling any more functions</span></td></tr><tr><td class="number">74</td><td>    <a href="http://www.allegro.cc/manual/release_screen" target="_blank"><span class="a">release_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>    </td></tr><tr><td class="number">76</td><td>    <span class="c">//now we wait for a key press</span></td></tr><tr><td class="number">77</td><td>    <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">78</td><td>    <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">79</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">80</td><td><span class="k2">}</span></td></tr><tr><td class="number">81</td><td>&#160;</td></tr><tr><td class="number">82</td><td><span class="c">//we have to call this when using Allegro</span></td></tr><tr><td class="number">83</td><td><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul Hoey)</author>
		<pubDate>Tue, 02 May 2006 00:49:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>you don&#39;t need to set the color palette in 16b mode.</p><p>Also, blit to the screen <i>after</i> you have drawn everything to the buffer.</p><p>I&#39;m not sure what&#39;s actually causing the problem though, you might want to try taking out acquire and release screen functions.</p><p>AH!  set the color depth AFTER allegro_init();  that would definately keep it from working like you want.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Tue, 02 May 2006 00:54:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>load_bitmap  does its own &#39;create&#39;  your create_bitmaps are causing memory leaks</p><p>are the bitmaps your loading 32bit ? or 8 bit ?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (A J)</author>
		<pubDate>Tue, 02 May 2006 00:55:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Mark: Noticed the drawing the buffer afterwards just after posting. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>I saved the buffer as a BMP after everything has been drawn and it&#39;s black too.</p><p>The images are all 16-Bit.</p><p>EDIT: Removing the aquire and release_screen methods didn&#39;t work, nor did changing where the set_color_depth method is called, and removing it entirely.</p><p>A J: Didn&#39;t know aobut that, the tutorial I read said to do it that way, thanks for letting me know. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul Hoey)</author>
		<pubDate>Tue, 02 May 2006 01:05:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>See if you can draw primitives onto the screen.<br />Or try saving the loaded images as bmps and see if there is anything in them.</p><p>Seems like an odd problem anyway.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jonatan Hedborg)</author>
		<pubDate>Tue, 02 May 2006 01:15:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>They&#39;re all entirely black.</p><p>Primitives appear.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul Hoey)</author>
		<pubDate>Tue, 02 May 2006 01:23:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Are you loading correctly the images? Are they in the right format (8 or 16 bpp)?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Tue, 02 May 2006 01:36:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, they&#39;re loading correctly and are all 16-Bit.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul Hoey)</author>
		<pubDate>Tue, 02 May 2006 01:39:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Don&#39;t call set_palette, because that is only useful on 8bpp. Also, in the for cycle you have the wrong variable order (i counts until SCREEN_H, thus it is y, and you are using it as x).</p><p>I guess other Allegro demo/programs work correctly, right? Can you post the updated code again with all the fixes you have done?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Tue, 02 May 2006 01:49:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>None of that sorted it. Updated code. If anyone wants to download the source along with the images and see if it works for thme, that&#39;d be great.
</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">//this is so we can use Allegro</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="c">//our main method</span></td></tr><tr><td class="number">5</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">6</td><td><span class="k2">{</span></td></tr><tr><td class="number">7</td><td>    <span class="c">//this initilises Allegro</span></td></tr><tr><td class="number">8</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span> <span class="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>        <span class="k1">return</span> <span class="n">1</span><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>    </td></tr><tr><td class="number">13</td><td>    <span class="c">//here we set up a new window to use</span></td></tr><tr><td class="number">14</td><td>    <span class="c">//the first parameter is the driver we're using</span></td></tr><tr><td class="number">15</td><td>    <span class="c">//the next 2 specify height and width</span></td></tr><tr><td class="number">16</td><td>    <span class="c">//the last 2 are for memory allocation</span></td></tr><tr><td class="number">17</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT, <span class="n">640</span>, <span class="n">480</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></td></tr><tr><td class="number">18</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">19</td><td>        <span class="c">//should te above fail, we want to try and set it using SAFE mode</span></td></tr><tr><td class="number">20</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_SAFE, <span class="n">640</span>, <span class="n">480</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></td></tr><tr><td class="number">21</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">22</td><td>            <span class="c">//and if that fails we want to tell the suer why the program will not work</span></td></tr><tr><td class="number">23</td><td>            <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_TEXT, <span class="n">0</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">24</td><td>            <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Unable to initiate any graphics mode!\n$s\n"</span>, <a href="http://www.allegro.cc/manual/allegro_error" target="_blank"><span class="a">allegro_error</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>            <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>        <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>    </td></tr><tr><td class="number">29</td><td>    <span class="c">//set the colour depth</span></td></tr><tr><td class="number">30</td><td>    <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>    </td></tr><tr><td class="number">32</td><td>    <span class="c">//clear the screen to be entirely white</span></td></tr><tr><td class="number">33</td><td>    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>    </td></tr><tr><td class="number">35</td><td>    <span class="c">//on windows it is faster if you aquire the screen before drawing to it</span></td></tr><tr><td class="number">36</td><td>    <a href="http://www.allegro.cc/manual/acquire_screen" target="_blank"><span class="a">acquire_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>    </td></tr><tr><td class="number">38</td><td>    <span class="c">//this installs the keyboard driver so we can use it</span></td></tr><tr><td class="number">39</td><td>    <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>    </td></tr><tr><td class="number">41</td><td>    <span class="c">//alright, this is where I'm declaring and creating some bitmaps to use</span></td></tr><tr><td class="number">42</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>ball, <span class="k3">*</span>ground, <span class="k3">*</span>sky<span class="k2">;</span></td></tr><tr><td class="number">43</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">44</td><td>    </td></tr><tr><td class="number">45</td><td>    buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>    </td></tr><tr><td class="number">47</td><td>    <span class="c">//load bitmap does it's own create_bitmap, so they aren't needed if I'm loading a bitmap</span></td></tr><tr><td class="number">48</td><td>    ball <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bmp" target="_blank"><span class="a">load_bmp</span></a><span class="k2">(</span><span class="s">"ball.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>    ground <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bmp" target="_blank"><span class="a">load_bmp</span></a><span class="k2">(</span><span class="s">"ground.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>    sky <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bmp" target="_blank"><span class="a">load_bmp</span></a><span class="k2">(</span><span class="s">"ground.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">51</td><td>    </td></tr><tr><td class="number">52</td><td>    <span class="c">//these 2 vars are for the ball's X and Y position</span></td></tr><tr><td class="number">53</td><td>    <span class="k1">int</span> ball_x, ball_y<span class="k2">;</span></td></tr><tr><td class="number">54</td><td>    <span class="c">//giving them default values</span></td></tr><tr><td class="number">55</td><td>    ball_x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td>    ball_y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">57</td><td>    </td></tr><tr><td class="number">58</td><td>    <span class="c">//drawing everything to the buffer</span></td></tr><tr><td class="number">59</td><td>    <span class="c">//most of the screen will be the sky</span></td></tr><tr><td class="number">60</td><td>    <span class="c">//done in this loop</span></td></tr><tr><td class="number">61</td><td>    <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> <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">;</span> i <span class="k3">=</span> i <span class="k3">+</span> <span class="n">20</span><span class="k2">)</span></td></tr><tr><td class="number">62</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">63</td><td>        <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a><span class="k2">;</span> j <span class="k3">=</span> j <span class="k3">+</span> <span class="n">20</span><span class="k2">)</span></td></tr><tr><td class="number">64</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">65</td><td>            <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, sky, j, i<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">66</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">67</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">68</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, ball, ball_x, ball_y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>    <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>, <span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>    <a href="http://www.allegro.cc/manual/save_bitmap" target="_blank"><span class="a">save_bitmap</span></a><span class="k2">(</span><span class="s">"buffer.bmp"</span>, buffer, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>    <a href="http://www.allegro.cc/manual/save_bitmap" target="_blank"><span class="a">save_bitmap</span></a><span class="k2">(</span><span class="s">"ball2.bmp"</span>, ball, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>    <a href="http://www.allegro.cc/manual/save_bitmap" target="_blank"><span class="a">save_bitmap</span></a><span class="k2">(</span><span class="s">"sky2.bmp"</span>, sky, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>    <a href="http://www.allegro.cc/manual/save_bitmap" target="_blank"><span class="a">save_bitmap</span></a><span class="k2">(</span><span class="s">"ground2.bmp"</span>, ground, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>    <a href="http://www.allegro.cc/manual/save_bitmap" target="_blank"><span class="a">save_bitmap</span></a><span class="k2">(</span><span class="s">"screen.bmp"</span>, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>    </td></tr><tr><td class="number">76</td><td>    </td></tr><tr><td class="number">77</td><td>    </td></tr><tr><td class="number">78</td><td>    <span class="c">//you have to release the screen before calling any more functions</span></td></tr><tr><td class="number">79</td><td>    <a href="http://www.allegro.cc/manual/release_screen" target="_blank"><span class="a">release_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">80</td><td>    </td></tr><tr><td class="number">81</td><td>    <span class="c">//now we wait for a key press</span></td></tr><tr><td class="number">82</td><td>    <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">83</td><td>    <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">84</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">85</td><td><span class="k2">}</span></td></tr><tr><td class="number">86</td><td>&#160;</td></tr><tr><td class="number">87</td><td><span class="c">//we have to call this when using Allegro</span></td></tr><tr><td class="number">88</td><td><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul Hoey)</author>
		<pubDate>Tue, 02 May 2006 01:59:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Don&#39;t do anything in acquire/release_screen pairs except draw to the screen. Never do anything involving timers or non-trivial code, including installing subsystems, as that&#39;s a sure fire way to cause a deadlock. While you have the screen acquired, you keep Allegro from processing timers, and thus you won&#39;t properly get input updates or anything. Also, you need to set the color depth before you set the video mode (you can&#39;t change color depths after you have already set the graphics mode, after all).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Tue, 02 May 2006 02:32:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>what is a 16 bit image ?<br />explain ?</p><p>you need to save your BMP files as either 8 or 24, or 32bit.<br />there is no 16bit BMP format that allegro supports</p><p>check the return values of all your load_bitmap calls
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (A J)</author>
		<pubDate>Tue, 02 May 2006 07:31:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Does setting the colour depth before initializing Allegro even work?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Tue, 02 May 2006 12:36:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Set the color depth before set_gfx_mode.</p><div class="source-code snippet"><div class="inner"><pre> <span class="c">//on windows it is faster if you aquire the screen before drawing to it</span>
    <a href="http://www.allegro.cc/manual/acquire_screen" target="_blank"><span class="a">acquire_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

This one isn&#39;t needed</p><div class="source-code snippet"><div class="inner"><pre> <span class="c">//you have to release the screen before calling any more functions</span>
    <a href="http://www.allegro.cc/manual/release_screen" target="_blank"><span class="a">release_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

This one no more.</p><p>Please test that your bitmap are correctly loaded by adding if( !sky ) after the loading.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Tue, 02 May 2006 13:04:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks for all the feedback, it turns out it was because the iamges were 16-Bit Bitmaps, I converted them to 24-Bit and it&#39;s working fine now, thanks for letting me know.<br />All feedback has been taken onboard, thank you. <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul Hoey)</author>
		<pubDate>Tue, 02 May 2006 14:37:46 +0000</pubDate>
	</item>
</rss>
