<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Question on increasing &quot;render&quot; speed</title>
		<link>http://www.allegro.cc/forums/view/608009</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 04 Aug 2011 22:26:16 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello everbody,</p><p>I am quite new to C++ and Allegro and started by following this tutorial <a href="http://www.hugi.scene.org/online/hugi31/hugi%2031%20-%20coding%20corner%20polaris%20creating%20demos%20-%20coder%20tutorial%202.htm">Demoscene C++ Allegro Tutorial</a>. I was even able to convert the code to Allegro Version 5 and everything worked fine. Then I started on the task with the snow piling up (at the bottom part of the Tutorial). After a while I also managed to solve this task. Now my problem is that the application is running very slow as you will see if you compile it by yourself. I guess this is because I am working with a Bitmap. My question now is how can I speed up the whole application ?</p><p>Here is the code:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;math.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   4</span>
<span class="number">   5</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">   6</span>
<span class="number">   7</span><span class="c">// data structures for snow flaxes = very simple</span>
<span class="number">   8</span><span class="k1">const</span> <span class="k1">int</span> total_flakes<span class="k3">=</span><span class="n">900</span><span class="k2">;</span>
<span class="number">   9</span><span class="k1">const</span> <span class="k1">int</span> total_layers<span class="k3">=</span><span class="n">3</span><span class="k2">;</span>
<span class="number">  10</span>
<span class="number">  11</span><span class="k1">struct</span> particle
<span class="number">  12</span><span class="k2">{</span>
<span class="number">  13</span>    <span class="k1">int</span> x,y<span class="k2">;</span>
<span class="number">  14</span>    <span class="k1">int</span> layer<span class="k2">;</span>
<span class="number">  15</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  16</span>
<span class="number">  17</span><span class="c">// global data - okay for a simple example like this</span>
<span class="number">  18</span>particle flakes<span class="k2">[</span>total_flakes<span class="k2">]</span><span class="k2">;</span> 
<span class="number">  19</span>particle lyingFlakes<span class="k2">[</span>total_flakes<span class="k2">]</span><span class="k2">;</span>
<span class="number">  20</span>
<span class="number">  21</span><span class="c">// This function initalizes the particle flakes</span>
<span class="number">  22</span><span class="k1">void</span> initalize_particle_flakes<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  23</span><span class="k2">{</span>
<span class="number">  24</span>    <span class="k1">int</span> i<span class="k2">;</span>
<span class="number">  25</span>    <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>i<span class="k3">&lt;</span>total_flakes<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  26</span>    <span class="k2">{</span>
<span class="number">  27</span>        flakes<span class="k2">[</span>i<span class="k2">]</span>.x<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">320</span><span class="k2">;</span> <span class="c">// 0-319 [x]</span>
<span class="number">  28</span>        flakes<span class="k2">[</span>i<span class="k2">]</span>.y<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">200</span><span class="k2">;</span> <span class="c">// 0-199 [y]</span>
<span class="number">  29</span>        flakes<span class="k2">[</span>i<span class="k2">]</span>.layer<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%total_layers<span class="k2">;</span><span class="c">// [0-2] [layer]</span>
<span class="number">  30</span>    
<span class="number">  31</span>    lyingFlakes<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">=</span> ceilf<span class="k2">(</span><span class="k2">(</span>i <span class="k3">/</span> <span class="n">2</span>.<span class="n">8125</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span>    lyingFlakes<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">=</span> <span class="n">199</span><span class="k2">;</span>
<span class="number">  33</span>    <span class="k2">}</span>
<span class="number">  34</span><span class="k2">}</span>
<span class="number">  35</span>
<span class="number">  36</span><span class="k1">void</span> check_for_piling<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>haufen<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  37</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>total_flakes<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  38</span>    <span class="k2">{</span>    
<span class="number">  39</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> particelColor <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> pixelColor <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_pixel"><span class="a">al_get_pixel</span></a><span class="k2">(</span>haufen,flakes<span class="k2">[</span>i<span class="k2">]</span>.x, flakes<span class="k2">[</span>i<span class="k2">]</span>.y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  41</span>
<span class="number">  42</span>    <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>particelColor.r <span class="k3">=</span><span class="k3">=</span> pixelColor.r<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>particelColor.g <span class="k3">=</span><span class="k3">=</span> pixelColor.g<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>particelColor.b <span class="k3">=</span><span class="k3">=</span> pixelColor.b<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  43</span>      <span class="c">// if((flakes[i].y &gt;= 199)) {</span>
<span class="number">  44</span>        <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>haufen<span class="k2">)</span><span class="k2">;</span>
<span class="number">  45</span>        <a href="http://www.allegro.cc/manual/al_put_pixel"><span class="a">al_put_pixel</span></a><span class="k2">(</span>flakes<span class="k2">[</span>i<span class="k2">]</span>.x, <span class="k2">(</span>flakes<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span>, particelColor<span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>        <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  47</span>        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>haufen, <span class="n">0</span>.<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>
<span class="number">  48</span>        <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span>      <span class="c">// }</span>
<span class="number">  50</span>    <span class="k2">}</span>
<span class="number">  51</span>    <span class="k2">}</span>
<span class="number">  52</span><span class="k2">}</span>
<span class="number">  53</span>
<span class="number">  54</span><span class="c">// This function draws all the particle flakes</span>
<span class="number">  55</span><span class="k1">void</span> draw_particle_flakes<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">)</span>
<span class="number">  56</span><span class="k2">{</span>
<span class="number">  57</span>    <span class="k1">int</span> i<span class="k2">;</span>
<span class="number">  58</span>  
<span class="number">  59</span>  <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>i<span class="k3">&lt;</span>total_flakes<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  60</span>    <span class="k2">{</span>    
<span class="number">  61</span>    <a href="http://www.allegro.cc/manual/al_put_pixel"><span class="a">al_put_pixel</span></a><span class="k2">(</span>flakes<span class="k2">[</span>i<span class="k2">]</span>.x, flakes<span class="k2">[</span>i<span class="k2">]</span>.y, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>    <span class="k2">}</span>
<span class="number">  63</span><span class="k2">}</span>
<span class="number">  64</span> 
<span class="number">  65</span><span class="c">// This updates the particle flakes</span>
<span class="number">  66</span><span class="k1">void</span> update_particle_flakes<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">)</span>
<span class="number">  67</span><span class="k2">{</span>
<span class="number">  68</span>    <span class="k1">int</span> i<span class="k2">;</span>
<span class="number">  69</span>
<span class="number">  70</span>    <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>i<span class="k3">&lt;</span>total_flakes<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  71</span>    <span class="k2">{</span>
<span class="number">  72</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> pixelColor <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_pixel"><span class="a">al_get_pixel</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span>,flakes<span class="k2">[</span>i<span class="k2">]</span>.x, flakes<span class="k2">[</span>i<span class="k2">]</span>.y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> particelColor <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>
<span class="number">  75</span>        <span class="c">// drop the particle down - depending on layer</span>
<span class="number">  76</span>        <span class="c">// [plus one - since layer zero would result </span>
<span class="number">  77</span>        <span class="c">// in no motion otherwize]</span>
<span class="number">  78</span>        flakes<span class="k2">[</span>i<span class="k2">]</span>.y<span class="k3">+</span><span class="k3">=</span>flakes<span class="k2">[</span>i<span class="k2">]</span>.layer<span class="k3">+</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  79</span> 
<span class="number">  80</span>        <span class="c">// check for wrap around</span>
<span class="number">  81</span>    <span class="k1">if</span> <span class="k2">(</span>flakes<span class="k2">[</span>i<span class="k2">]</span>.y&gt;199<span class="k2">)</span>
<span class="number">  82</span>    <span class="k2">{</span>
<span class="number">  83</span>        flakes<span class="k2">[</span>i<span class="k2">]</span>.x<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">320</span><span class="k2">;</span>
<span class="number">  84</span>        flakes<span class="k2">[</span>i<span class="k2">]</span>.y<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number">  85</span>        flakes<span class="k2">[</span>i<span class="k2">]</span>.layer<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%total_layers<span class="k2">;</span>
<span class="number">  86</span>    <span class="k2">}</span>
<span class="number">  87</span>
<span class="number">  88</span>        <span class="c">// new x position   </span>
<span class="number">  89</span>        flakes<span class="k2">[</span>i<span class="k2">]</span>.x<span class="k3">=</span><span class="k2">(</span>flakes<span class="k2">[</span>i<span class="k2">]</span>.x<span class="k3">+</span><span class="k2">(</span><span class="n">2</span><span class="k3">-</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">5</span><span class="k2">)</span><span class="k2">)</span> % <span class="n">320</span><span class="k2">;</span>
<span class="number">  90</span>    <span class="k2">}</span>
<span class="number">  91</span><span class="k2">}</span>
<span class="number">  92</span>
<span class="number">  93</span><span class="k1">void</span> update_display<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  94</span>    update_particle_flakes<span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>  <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>  draw_particle_flakes<span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  97</span>  <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  98</span><span class="k2">}</span>
<span class="number">  99</span> 
<span class="number"> 100</span><span class="c">// main program</span>
<span class="number"> 101</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>         
<span class="number"> 102</span>            <span class="k1">int</span> i<span class="k2">;</span>
<span class="number"> 103</span>            
<span class="number"> 104</span>            <a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>        <span class="c">// init Allegro </span>
<span class="number"> 105</span>            <a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>    <span class="c">// setup allegro keyboard</span>
<span class="number"> 106</span>            
<span class="number"> 107</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 108</span>      display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><span class="n">320</span>, <span class="n">200</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</span>
<span class="number"> 110</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>haufen <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 111</span>      haufen <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_bitmap"><span class="a">al_create_bitmap</span></a><span class="k2">(</span><span class="n">320</span>, <span class="n">200</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>
<span class="number"> 113</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 114</span>      event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 115</span>
<span class="number"> 116</span>      <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span>
<span class="number"> 118</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number"> 119</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_TIMEOUT"><span class="a">ALLEGRO_TIMEOUT</span></a> timeout<span class="k2">;</span>
<span class="number"> 120</span>      <a href="http://www.allegro.cc/manual/al_init_timeout"><span class="a">al_init_timeout</span></a><span class="k2">(</span><span class="k3">&amp;</span>timeout, <span class="n">0</span>.<span class="n">06</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>
<span class="number"> 122</span>      <span class="k1">bool</span> got_event <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_wait_for_event_until"><span class="a">al_wait_for_event_until</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev, <span class="k3">&amp;</span>timeout<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>
<span class="number"> 124</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> white <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>
<span class="number"> 126</span>            initalize_particle_flakes<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>      
<span class="number"> 127</span>            
<span class="number"> 128</span>      <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>haufen<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 129</span>      <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>i<span class="k3">&lt;</span>total_flakes<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 130</span>        <a href="http://www.allegro.cc/manual/al_put_pixel"><span class="a">al_put_pixel</span></a><span class="k2">(</span>lyingFlakes<span class="k2">[</span>i<span class="k2">]</span>.x, lyingFlakes<span class="k2">[</span>i<span class="k2">]</span>.y, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 131</span>      <span class="k2">}</span>
<span class="number"> 132</span>      <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>haufen, <span class="n">0</span>.<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>
<span class="number"> 134</span>      <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 135</span>
<span class="number"> 136</span>      <span class="k1">while</span> <span class="k2">(</span><span class="k1">true</span><span class="k2">)</span> <span class="k2">{</span> 
<span class="number"> 137</span>          update_display<span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>          check_for_piling<span class="k2">(</span>display, haufen<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>      <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 140</span> 
<span class="number"> 141</span>            <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>     
<span class="number"> 142</span><span class="k2">}</span>
</div></div><p>

best regards and many thanks for any help !</p><p>djtschke
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (djtschke)</author>
		<pubDate>Wed, 03 Aug 2011 19:37:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Putting pixels is expensive in A5 and likely your bottleneck. Look into bitmap locking or blit your particle to a bitmap then draw that bitmap instead with al_hold_bitmap_drawing set to true.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Wed, 03 Aug 2011 19:41:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I already looked into the al_lock_bitmap() function and experimented a bit. But it didn&#39;t really help anything. Also I must confess I didn&#39;t quite get the clue of how that function works.</p><p>best regards,</p><p>djtschke
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (djtschke)</author>
		<pubDate>Wed, 03 Aug 2011 19:48:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Then try the other method. create a new bitmap, set it as the target bitmap, draw your pattern, then set the target back to the back buffer, now instead of calls to al_draw_pixel, right before the for loop call:</p><p>al_hold_bitmap_drawing(true);</p><p>then in your for loop, draw the bitmap.<br />then after the for loop call:</p><p>al_hold_bitmap_drawing(false);
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Wed, 03 Aug 2011 20:14:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Try <span class="source-code"><a href="http://www.allegro.cc/manual/al_draw_prim"><span class="a">al_draw_prim</span></a></span> with <span class="source-code">ALLEGRO_PRIM_POINT_LIST</span> and a custom vertex declaration (see ex_prim example).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Wed, 03 Aug 2011 20:50:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>A bit off-topic but that&#39;s a horrible gap in the tutorial I see. It goes from basically the smallest possible allegro program to a slightly extensive particle snow tutorial.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (North~)</author>
		<pubDate>Thu, 04 Aug 2011 05:10:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Very much off-topic:
</p><div class="quote_container"><div class="title">Tutorial said:</div><div class="quote"><p>I run my laptop at 60hz, but my PC at 120.</p></div></div><p>
Yesterday I discovered my CRT monitor had a 120Hz mode <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><br />I didn&#39;t know of al_draw_prim. Interesting. How do you define colour when using NULL as a texture?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (weapon_S)</author>
		<pubDate>Thu, 04 Aug 2011 12:37:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="source-code"><a href="http://www.allegro.cc/manual/ALLEGRO_VERTEX"><span class="a">ALLEGRO_VERTEX</span></a></span> has a color parameter. Custom vertex declarations also have a method to specify the color.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Thu, 04 Aug 2011 22:26:16 +0000</pubDate>
	</item>
</rss>
