<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>DevCpp Learning to profile with</title>
		<link>http://www.allegro.cc/forums/view/589857</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 03 Feb 2007 22:37:50 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I am using devcpp since a few days ago.<br />I have 2 functions for drawing anti-aliased sprites to a memory buffer, one is allegro&#39;s draw_trans_sprite(), and the other one is Fladimir&#39;s AlphaBlend32(). <br />I want to know how much faster the fastest one is.</p><p>I am linking to liballp.a, and the compiler option <b>-pg</b>.<br />Attached is the source file with an alpha sprite for testing.</p><p>Here is the loop, I am calling both functions at the same time, I think that&#39;s the best way for testing, any advices?
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">2</td><td>   <span class="c">/* Setup Allegro */</span></td></tr><tr><td class="number">3</td><td>   <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="k2">;</span></td></tr><tr><td class="number">4</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">5</td><td>   <a href="http://www.allegro.cc/manual/install_mouse" target="_blank"><span class="a">install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td>   <span class="c">/*set color depth in 32bpp  */</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">32</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</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_AUTODETECT_WINDOWED, <span class="n">800</span>, <span class="n">600</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">10</td><td>   <span class="c">//set_gfx_mode( GFX_AUTODETECT, 800, 600, 0, 0 );</span></td></tr><tr><td class="number">11</td><td>   </td></tr><tr><td class="number">12</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> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span> <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</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>buffer, <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">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><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">/* must be a 32-bit bitmap with an alpha channel! */</span></td></tr><tr><td class="number">16</td><td>   <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>sprite <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span> <span class="s">"olafito.tga"</span>, NULL <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>   <span class="k1">if</span><span class="k2">(</span>sprite <span class="k3">=</span><span class="k3">=</span> NULL <span class="k2">)</span> <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">"not found\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>   </td></tr><tr><td class="number">19</td><td><a href="http://www.allegro.cc/manual/set_alpha_blender" target="_blank"><span class="a">set_alpha_blender</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td><span class="k1">do</span> <span class="k2">{</span>   </td></tr><tr><td class="number">22</td><td>&#160;</td></tr><tr><td class="number">23</td><td>   </td></tr><tr><td class="number">24</td><td>   <span class="c">/* draw with AlphaBlend32*/</span></td></tr><tr><td class="number">25</td><td>      AlphaBlend32<span class="k2">(</span> sprite, buffer, mouse_x-sprite-&gt;w<span class="k3">/</span><span class="n">2</span>, mouse_y-sprite-&gt;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">26</td><td>      </td></tr><tr><td class="number">27</td><td>   <span class="c">/* draw with draw_trans_sprite */</span>   </td></tr><tr><td class="number">28</td><td>      <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, sprite, mouse_x-sprite-&gt;w<span class="k3">/</span><span class="n">2</span>, mouse_y-sprite-&gt;h<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>      </td></tr><tr><td class="number">30</td><td>    </td></tr><tr><td class="number">31</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>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a> <span class="k2">)</span><span class="k2">;</span></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><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_ESC<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
.<br />.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Sat, 03 Feb 2007 03:35:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Linking with profiling versions of Allegro is only meaningful <i>if you want to profile Allegro itself</i>. If you want to profile your program then compile it with -pg and link with regular allegro. That way allegro won&#39;t be slowed down by being profiled.</p><p>In case of your program I&#39;d just have two loops that repeat one or the other function for million times. The one who takes less time wins. Profilers won&#39;t be much of use to you, unless you intend to improve implementations of these functions.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HoHo)</author>
		<pubDate>Sat, 03 Feb 2007 03:49:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Linking with profiling versions of Allegro is only meaningful if you want to profile Allegro itself. If you want to profile your program then compile it with -pg and link with regular allegro. That way allegro won&#039;t be slowed down by being profiled.
</p></div></div><p>

I did not know that, in MSVC6 I was using the debug and profile version of allegro for debuging and profiling my program, that was not really necesary?</p><p>Back on topic, I changed my loop code following your advice.<br />I tested the program with draw_trans_sprite and AlphaBlend32, one first, and the other later.</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><a href="http://www.allegro.cc/manual/set_alpha_blender" target="_blank"><span class="a">set_alpha_blender</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  2</span><span class="k1">int</span> counter<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number">  3</span><span class="k1">do</span> <span class="k2">{</span>   
<span class="number">  4</span>
<span class="number">  5</span>   
<span class="number">  6</span>   <span class="c">/* draw with AlphaBlend32*/</span>
<span class="number">  7</span>      AlphaBlend32<span class="k2">(</span> sprite, buffer, mouse_x-sprite-&gt;w<span class="k3">/</span><span class="n">2</span>, mouse_y-sprite-&gt;h<span class="k3">/</span><span class="n">2</span>, <span class="n">255</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>      
<span class="number">  9</span>   <span class="c">/* draw with draw_trans_sprite */</span>   
<span class="number"> 10</span>    <span class="c">//  draw_trans_sprite(buffer, sprite, mouse_x-sprite-&gt;w/2, mouse_y-sprite-&gt;h/2);</span>
<span class="number"> 11</span>      
<span class="number"> 12</span>    
<span class="number"> 13</span>   <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span> buffer, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a> <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>   counter<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</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_ESC<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> counter<span class="k3">&lt;</span><span class="n">10000</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 18</span><span class="k2">}</span>
</div></div><p>
.<br />.  <br /><b>This is what I obtained for AlphaBlend32:</b><br />.<br />.</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>Each sample counts as <span class="n">0</span>.<span class="n">01</span> seconds.
<span class="number">  2</span>  %   cumulative   self              self     total           
<span class="number">  3</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a>   seconds   seconds    calls  ms<span class="k3">/</span>call  ms<span class="k3">/</span>call  name    
<span class="number">  4</span> <span class="n">54</span>.<span class="n">97</span>      <span class="n">8</span>.<span class="n">46</span>     <span class="n">8</span>.<span class="n">46</span>    <span class="n">10000</span>     <span class="n">0</span>.<span class="n">85</span>     <span class="n">1</span>.<span class="n">54</span>  AlphaBlend32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span><span class="k2">)</span>
<span class="number">  5</span> <span class="n">28</span>.<span class="n">20</span>     <span class="n">12</span>.<span class="n">80</span>     <span class="n">4</span>.<span class="n">34</span> <span class="n">202430000</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  BlendColors32NoEmms<span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">long</span>, <span class="k1">unsigned</span> <span class="k1">long</span>, <span class="k1">unsigned</span> <span class="k1">long</span><span class="k2">)</span>
<span class="number">  6</span> <span class="n">16</span>.<span class="n">50</span>     <span class="n">15</span>.<span class="n">34</span>     <span class="n">2</span>.<span class="n">54</span> <span class="n">768000000</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  <a href="http://www.allegro.cc/manual/geta32" target="_blank"><span class="a">geta32</span></a>
<span class="number">  7</span>  <span class="n">0</span>.<span class="n">19</span>     <span class="n">15</span>.<span class="n">37</span>     <span class="n">0</span>.<span class="n">03</span>  <span class="n">2400000</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  <a href="http://www.allegro.cc/manual/bmp_write_line" target="_blank"><span class="a">bmp_write_line</span></a>
<span class="number">  8</span>  <span class="n">0</span>.<span class="n">13</span>     <span class="n">15</span>.<span class="n">39</span>     <span class="n">0</span>.<span class="n">02</span>                             _mangled_main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  9</span>  <span class="n">0</span>.<span class="n">00</span>     <span class="n">15</span>.<span class="n">39</span>     <span class="n">0</span>.<span class="n">00</span>    <span class="n">10000</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  CallEmms<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 10</span>  <span class="n">0</span>.<span class="n">00</span>     <span class="n">15</span>.<span class="n">39</span>     <span class="n">0</span>.<span class="n">00</span>    <span class="n">10000</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  <a href="http://www.allegro.cc/manual/acquire_bitmap" target="_blank"><span class="a">acquire_bitmap</span></a>
<span class="number"> 11</span>  <span class="n">0</span>.<span class="n">00</span>     <span class="n">15</span>.<span class="n">39</span>     <span class="n">0</span>.<span class="n">00</span>    <span class="n">10000</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  <a href="http://www.allegro.cc/manual/bmp_unwrite_line" target="_blank"><span class="a">bmp_unwrite_line</span></a>
<span class="number"> 12</span>  <span class="n">0</span>.<span class="n">00</span>     <span class="n">15</span>.<span class="n">39</span>     <span class="n">0</span>.<span class="n">00</span>    <span class="n">10000</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  <a href="http://www.allegro.cc/manual/release_bitmap" target="_blank"><span class="a">release_bitmap</span></a>
<span class="number"> 13</span>  <span class="n">0</span>.<span class="n">00</span>     <span class="n">15</span>.<span class="n">39</span>     <span class="n">0</span>.<span class="n">00</span>        <span class="n">1</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  WinMain@<span class="n">16</span>
<span class="number"> 14</span>  <span class="n">0</span>.<span class="n">00</span>     <span class="n">15</span>.<span class="n">39</span>     <span class="n">0</span>.<span class="n">00</span>        <span class="n">1</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a>
<span class="number"> 15</span>
<span class="number"> 16</span> %         the percentage of the total running <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a> of the
<span class="number"> 17</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a>       program used by <span class="k1">this</span> function.
<span class="number"> 18</span>
<span class="number"> 19</span>cumulative a running sum of the number of seconds accounted
<span class="number"> 20</span> seconds   <span class="k1">for</span> by <span class="k1">this</span> function <span class="k1">and</span> those listed above it.
<span class="number"> 21</span>
<span class="number"> 22</span> self      the number of seconds accounted <span class="k1">for</span> by <span class="k1">this</span>
<span class="number"> 23</span>seconds    function alone.  This is the major sort <span class="k1">for</span> <span class="k1">this</span>
<span class="number"> 24</span>           listing.
<span class="number"> 25</span>
<span class="number"> 26</span>calls      the number of <a href="http://www.delorie.com/djgpp/doc/libc/libc_822.html" target="_blank">times</a> <span class="k1">this</span> function was invoked, <span class="k1">if</span>
<span class="number"> 27</span>           <span class="k1">this</span> function is profiled, <span class="k1">else</span> blank.
<span class="number"> 28</span> 
<span class="number"> 29</span> self      the average number of milliseconds spent in <span class="k1">this</span>
<span class="number"> 30</span>ms<span class="k3">/</span>call    function per call, <span class="k1">if</span> <span class="k1">this</span> function is profiled,
<span class="number"> 31</span>     <span class="k1">else</span> blank.
<span class="number"> 32</span>
<span class="number"> 33</span> total     the average number of milliseconds spent in <span class="k1">this</span>
<span class="number"> 34</span>ms<span class="k3">/</span>call    function <span class="k1">and</span> its descendents per call, <span class="k1">if</span> <span class="k1">this</span> 
<span class="number"> 35</span>     function is profiled, <span class="k1">else</span> blank.
<span class="number"> 36</span>
<span class="number"> 37</span>name       the name of the function.  This is the minor sort
<span class="number"> 38</span>           <span class="k1">for</span> <span class="k1">this</span> listing. The <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> shows the location of
<span class="number"> 39</span>     the function in the gprof listing. If the <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> is
<span class="number"> 40</span>     in parenthesis it shows where it would appear in
<span class="number"> 41</span>     the gprof listing <span class="k1">if</span> it were to be printed.
<span class="number"> 42</span>
<span class="number"> 43</span>         Call graph <span class="k2">(</span>explanation follows<span class="k2">)</span>
<span class="number"> 44</span>
<span class="number"> 45</span>
<span class="number"> 46</span>granularity: each sample hit covers <span class="n">4</span> byte<span class="k2">(</span>s<span class="k2">)</span> <span class="k1">for</span> <span class="n">0</span>.<span class="n">06</span>% of <span class="n">15</span>.<span class="n">39</span> seconds
<span class="number"> 47</span>
<span class="number"> 48</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> % <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a>    self  children    called     name
<span class="number"> 49</span>                                                 <span class="k3">&lt;</span>spontaneous&gt;
<span class="number"> 50</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span>    <span class="n">100</span>.<span class="n">0</span>    <span class="n">0</span>.<span class="n">02</span>   <span class="n">15</span>.<span class="n">37</span>                 _mangled_main<span class="k2">(</span><span class="k2">)</span> <span class="k2">[</span><span class="n">1</span><span class="k2">]</span>
<span class="number"> 51</span>                <span class="n">8</span>.<span class="n">46</span>    <span class="n">6</span>.<span class="n">91</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</span>       AlphaBlend32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span><span class="k2">)</span> <span class="k2">[</span><span class="n">2</span><span class="k2">]</span>
<span class="number"> 52</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>       <span class="n">1</span><span class="k3">/</span><span class="n">1</span>           <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a> <span class="k2">[</span><span class="n">13</span><span class="k2">]</span>
<span class="number"> 53</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 54</span>                <span class="n">8</span>.<span class="n">46</span>    <span class="n">6</span>.<span class="n">91</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</span>       _mangled_main<span class="k2">(</span><span class="k2">)</span> <span class="k2">[</span><span class="n">1</span><span class="k2">]</span>
<span class="number"> 55</span><span class="k2">[</span><span class="n">2</span><span class="k2">]</span>     <span class="n">99</span>.<span class="n">9</span>    <span class="n">8</span>.<span class="n">46</span>    <span class="n">6</span>.<span class="n">91</span>   <span class="n">10000</span>         AlphaBlend32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span><span class="k2">)</span> <span class="k2">[</span><span class="n">2</span><span class="k2">]</span>
<span class="number"> 56</span>                <span class="n">4</span>.<span class="n">34</span>    <span class="n">0</span>.<span class="n">00</span> <span class="n">202430000</span><span class="k3">/</span><span class="n">202430000</span>     BlendColors32NoEmms<span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">long</span>, <span class="k1">unsigned</span> <span class="k1">long</span>, <span class="k1">unsigned</span> <span class="k1">long</span><span class="k2">)</span> <span class="k2">[</span><span class="n">3</span><span class="k2">]</span>
<span class="number"> 57</span>                <span class="n">2</span>.<span class="n">54</span>    <span class="n">0</span>.<span class="n">00</span> <span class="n">768000000</span><span class="k3">/</span><span class="n">768000000</span>     <a href="http://www.allegro.cc/manual/geta32" target="_blank"><span class="a">geta32</span></a> <span class="k2">[</span><span class="n">4</span><span class="k2">]</span>
<span class="number"> 58</span>                <span class="n">0</span>.<span class="n">03</span>    <span class="n">0</span>.<span class="n">00</span> <span class="n">2400000</span><span class="k3">/</span><span class="n">2400000</span>     <a href="http://www.allegro.cc/manual/bmp_write_line" target="_blank"><span class="a">bmp_write_line</span></a> <span class="k2">[</span><span class="n">5</span><span class="k2">]</span>
<span class="number"> 59</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</span>       <a href="http://www.allegro.cc/manual/acquire_bitmap" target="_blank"><span class="a">acquire_bitmap</span></a> <span class="k2">[</span><span class="n">9</span><span class="k2">]</span>
<span class="number"> 60</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</span>       CallEmms<span class="k2">(</span><span class="k2">)</span> <span class="k2">[</span><span class="n">8</span><span class="k2">]</span>
<span class="number"> 61</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</span>       <a href="http://www.allegro.cc/manual/bmp_unwrite_line" target="_blank"><span class="a">bmp_unwrite_line</span></a> <span class="k2">[</span><span class="n">10</span><span class="k2">]</span>
<span class="number"> 62</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</span>       <a href="http://www.allegro.cc/manual/release_bitmap" target="_blank"><span class="a">release_bitmap</span></a> <span class="k2">[</span><span class="n">11</span><span class="k2">]</span>
<span class="number"> 63</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 64</span>                <span class="n">4</span>.<span class="n">34</span>    <span class="n">0</span>.<span class="n">00</span> <span class="n">202430000</span><span class="k3">/</span><span class="n">202430000</span>     AlphaBlend32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span><span class="k2">)</span> <span class="k2">[</span><span class="n">2</span><span class="k2">]</span>
<span class="number"> 65</span><span class="k2">[</span><span class="n">3</span><span class="k2">]</span>     <span class="n">28</span>.<span class="n">2</span>    <span class="n">4</span>.<span class="n">34</span>    <span class="n">0</span>.<span class="n">00</span> <span class="n">202430000</span>         BlendColors32NoEmms<span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">long</span>, <span class="k1">unsigned</span> <span class="k1">long</span>, <span class="k1">unsigned</span> <span class="k1">long</span><span class="k2">)</span> <span class="k2">[</span><span class="n">3</span><span class="k2">]</span>
<span class="number"> 66</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 67</span>                <span class="n">2</span>.<span class="n">54</span>    <span class="n">0</span>.<span class="n">00</span> <span class="n">768000000</span><span class="k3">/</span><span class="n">768000000</span>     AlphaBlend32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span><span class="k2">)</span> <span class="k2">[</span><span class="n">2</span><span class="k2">]</span>
<span class="number"> 68</span><span class="k2">[</span><span class="n">4</span><span class="k2">]</span>     <span class="n">16</span>.<span class="n">5</span>    <span class="n">2</span>.<span class="n">54</span>    <span class="n">0</span>.<span class="n">00</span> <span class="n">768000000</span>         <a href="http://www.allegro.cc/manual/geta32" target="_blank"><span class="a">geta32</span></a> <span class="k2">[</span><span class="n">4</span><span class="k2">]</span>
<span class="number"> 69</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 70</span>                <span class="n">0</span>.<span class="n">03</span>    <span class="n">0</span>.<span class="n">00</span> <span class="n">2400000</span><span class="k3">/</span><span class="n">2400000</span>     AlphaBlend32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span><span class="k2">)</span> <span class="k2">[</span><span class="n">2</span><span class="k2">]</span>
<span class="number"> 71</span><span class="k2">[</span><span class="n">5</span><span class="k2">]</span>      <span class="n">0</span>.<span class="n">2</span>    <span class="n">0</span>.<span class="n">03</span>    <span class="n">0</span>.<span class="n">00</span> <span class="n">2400000</span>         <a href="http://www.allegro.cc/manual/bmp_write_line" target="_blank"><span class="a">bmp_write_line</span></a> <span class="k2">[</span><span class="n">5</span><span class="k2">]</span>
<span class="number"> 72</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 73</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</span>       AlphaBlend32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span><span class="k2">)</span> <span class="k2">[</span><span class="n">2</span><span class="k2">]</span>
<span class="number"> 74</span><span class="k2">[</span><span class="n">8</span><span class="k2">]</span>      <span class="n">0</span>.<span class="n">0</span>    <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span>         CallEmms<span class="k2">(</span><span class="k2">)</span> <span class="k2">[</span><span class="n">8</span><span class="k2">]</span>
<span class="number"> 75</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 76</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</span>       AlphaBlend32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span><span class="k2">)</span> <span class="k2">[</span><span class="n">2</span><span class="k2">]</span>
<span class="number"> 77</span><span class="k2">[</span><span class="n">9</span><span class="k2">]</span>      <span class="n">0</span>.<span class="n">0</span>    <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span>         <a href="http://www.allegro.cc/manual/acquire_bitmap" target="_blank"><span class="a">acquire_bitmap</span></a> <span class="k2">[</span><span class="n">9</span><span class="k2">]</span>
<span class="number"> 78</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 79</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</span>       AlphaBlend32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span><span class="k2">)</span> <span class="k2">[</span><span class="n">2</span><span class="k2">]</span>
<span class="number"> 80</span><span class="k2">[</span><span class="n">10</span><span class="k2">]</span>     <span class="n">0</span>.<span class="n">0</span>    <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span>         <a href="http://www.allegro.cc/manual/bmp_unwrite_line" target="_blank"><span class="a">bmp_unwrite_line</span></a> <span class="k2">[</span><span class="n">10</span><span class="k2">]</span>
<span class="number"> 81</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 82</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</span>       AlphaBlend32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span><span class="k2">)</span> <span class="k2">[</span><span class="n">2</span><span class="k2">]</span>
<span class="number"> 83</span><span class="k2">[</span><span class="n">11</span><span class="k2">]</span>     <span class="n">0</span>.<span class="n">0</span>    <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span>         <a href="http://www.allegro.cc/manual/release_bitmap" target="_blank"><span class="a">release_bitmap</span></a> <span class="k2">[</span><span class="n">11</span><span class="k2">]</span>
<span class="number"> 84</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 85</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>       <span class="n">1</span><span class="k3">/</span><span class="n">1</span>           main <span class="k2">[</span><span class="n">76</span><span class="k2">]</span>
<span class="number"> 86</span><span class="k2">[</span><span class="n">12</span><span class="k2">]</span>     <span class="n">0</span>.<span class="n">0</span>    <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>       <span class="n">1</span>         WinMain@<span class="n">16</span> <span class="k2">[</span><span class="n">12</span><span class="k2">]</span>
<span class="number"> 87</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 88</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>       <span class="n">1</span><span class="k3">/</span><span class="n">1</span>           _mangled_main<span class="k2">(</span><span class="k2">)</span> <span class="k2">[</span><span class="n">1</span><span class="k2">]</span>
<span class="number"> 89</span><span class="k2">[</span><span class="n">13</span><span class="k2">]</span>     <span class="n">0</span>.<span class="n">0</span>    <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>       <span class="n">1</span>         <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a> <span class="k2">[</span><span class="n">13</span><span class="k2">]</span>
<span class="number"> 90</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
</div></div><p>

.<br />.<br /><b>This is what I obtained for draw_trans_sprite</b><br />.<br />.
</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>Flat profile:
<span class="number">  2</span>
<span class="number">  3</span>Each sample counts as <span class="n">0</span>.<span class="n">01</span> seconds.
<span class="number">  4</span>  %   cumulative   self              self     total           
<span class="number">  5</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a>   seconds   seconds    calls  Ts<span class="k3">/</span>call  Ts<span class="k3">/</span>call  name    
<span class="number">  6</span><span class="n">100</span>.<span class="n">00</span>      <span class="n">0</span>.<span class="n">01</span>     <span class="n">0</span>.<span class="n">01</span>                             _mangled_main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  7</span>  <span class="n">0</span>.<span class="n">00</span>      <span class="n">0</span>.<span class="n">01</span>     <span class="n">0</span>.<span class="n">00</span>    <span class="n">10000</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  <a href="http://www.allegro.cc/manual/draw_trans_sprite" target="_blank"><span class="a">draw_trans_sprite</span></a>
<span class="number">  8</span>  <span class="n">0</span>.<span class="n">00</span>      <span class="n">0</span>.<span class="n">01</span>     <span class="n">0</span>.<span class="n">00</span>        <span class="n">1</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  WinMain@<span class="n">16</span>
<span class="number">  9</span>  <span class="n">0</span>.<span class="n">00</span>      <span class="n">0</span>.<span class="n">01</span>     <span class="n">0</span>.<span class="n">00</span>        <span class="n">1</span>     <span class="n">0</span>.<span class="n">00</span>     <span class="n">0</span>.<span class="n">00</span>  <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a>
<span class="number"> 10</span>
<span class="number"> 11</span> %         the percentage of the total running <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a> of the
<span class="number"> 12</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a>       program used by <span class="k1">this</span> function.
<span class="number"> 13</span>
<span class="number"> 14</span>cumulative a running sum of the number of seconds accounted
<span class="number"> 15</span> seconds   <span class="k1">for</span> by <span class="k1">this</span> function <span class="k1">and</span> those listed above it.
<span class="number"> 16</span>
<span class="number"> 17</span> self      the number of seconds accounted <span class="k1">for</span> by <span class="k1">this</span>
<span class="number"> 18</span>seconds    function alone.  This is the major sort <span class="k1">for</span> <span class="k1">this</span>
<span class="number"> 19</span>           listing.
<span class="number"> 20</span>
<span class="number"> 21</span>calls      the number of <a href="http://www.delorie.com/djgpp/doc/libc/libc_822.html" target="_blank">times</a> <span class="k1">this</span> function was invoked, <span class="k1">if</span>
<span class="number"> 22</span>           <span class="k1">this</span> function is profiled, <span class="k1">else</span> blank.
<span class="number"> 23</span> 
<span class="number"> 24</span> self      the average number of milliseconds spent in <span class="k1">this</span>
<span class="number"> 25</span>ms<span class="k3">/</span>call    function per call, <span class="k1">if</span> <span class="k1">this</span> function is profiled,
<span class="number"> 26</span>     <span class="k1">else</span> blank.
<span class="number"> 27</span>
<span class="number"> 28</span> total     the average number of milliseconds spent in <span class="k1">this</span>
<span class="number"> 29</span>ms<span class="k3">/</span>call    function <span class="k1">and</span> its descendents per call, <span class="k1">if</span> <span class="k1">this</span> 
<span class="number"> 30</span>     function is profiled, <span class="k1">else</span> blank.
<span class="number"> 31</span>
<span class="number"> 32</span>name       the name of the function.  This is the minor sort
<span class="number"> 33</span>           <span class="k1">for</span> <span class="k1">this</span> listing. The <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> shows the location of
<span class="number"> 34</span>     the function in the gprof listing. If the <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> is
<span class="number"> 35</span>     in parenthesis it shows where it would appear in
<span class="number"> 36</span>     the gprof listing <span class="k1">if</span> it were to be printed.
<span class="number"> 37</span>
<span class="number"> 38</span>         Call graph <span class="k2">(</span>explanation follows<span class="k2">)</span>
<span class="number"> 39</span>
<span class="number"> 40</span>
<span class="number"> 41</span>granularity: each sample hit covers <span class="n">4</span> byte<span class="k2">(</span>s<span class="k2">)</span> <span class="k1">for</span> <span class="n">100</span>.<span class="n">00</span>% of <span class="n">0</span>.<span class="n">01</span> seconds
<span class="number"> 42</span>
<span class="number"> 43</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> % <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a>    self  children    called     name
<span class="number"> 44</span>                                                 <span class="k3">&lt;</span>spontaneous&gt;
<span class="number"> 45</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span>    <span class="n">100</span>.<span class="n">0</span>    <span class="n">0</span>.<span class="n">01</span>    <span class="n">0</span>.<span class="n">00</span>                 _mangled_main<span class="k2">(</span><span class="k2">)</span> <span class="k2">[</span><span class="n">1</span><span class="k2">]</span>
<span class="number"> 46</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</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><span class="n">4</span><span class="k2">]</span>
<span class="number"> 47</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>       <span class="n">1</span><span class="k3">/</span><span class="n">1</span>           <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a> <span class="k2">[</span><span class="n">6</span><span class="k2">]</span>
<span class="number"> 48</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 49</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</span><span class="k3">/</span><span class="n">10000</span>       _mangled_main<span class="k2">(</span><span class="k2">)</span> <span class="k2">[</span><span class="n">1</span><span class="k2">]</span>
<span class="number"> 50</span><span class="k2">[</span><span class="n">4</span><span class="k2">]</span>      <span class="n">0</span>.<span class="n">0</span>    <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>   <span class="n">10000</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><span class="n">4</span><span class="k2">]</span>
<span class="number"> 51</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 52</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>       <span class="n">1</span><span class="k3">/</span><span class="n">1</span>           main <span class="k2">[</span><span class="n">76</span><span class="k2">]</span>
<span class="number"> 53</span><span class="k2">[</span><span class="n">5</span><span class="k2">]</span>      <span class="n">0</span>.<span class="n">0</span>    <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>       <span class="n">1</span>         WinMain@<span class="n">16</span> <span class="k2">[</span><span class="n">5</span><span class="k2">]</span>
<span class="number"> 54</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number"> 55</span>                <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>       <span class="n">1</span><span class="k3">/</span><span class="n">1</span>           _mangled_main<span class="k2">(</span><span class="k2">)</span> <span class="k2">[</span><span class="n">1</span><span class="k2">]</span>
<span class="number"> 56</span><span class="k2">[</span><span class="n">6</span><span class="k2">]</span>      <span class="n">0</span>.<span class="n">0</span>    <span class="n">0</span>.<span class="n">00</span>    <span class="n">0</span>.<span class="n">00</span>       <span class="n">1</span>         <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a> <span class="k2">[</span><span class="n">6</span><span class="k2">]</span>
<span class="number"> 57</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
</div></div><p>
.<br />.<br />What does that mean? I can&#039;t even read it!&gt;:(
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Sat, 03 Feb 2007 04:54:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>As I said before, profiling is not the best way to find out what is faster, at least not in your case. Problem is, profiling code adds a lot of overhead and it won&#39;t give you all that accurate results. Also comparing two programs and their profiler outputs is not very meaningful, especially as Allegro used release code and Fladimir&#39;s alphablend functions used much slower profiling code (assuming you added his functions to your project).</p><p>As I said, just call each function lots of times (program runtime should be &gt;10 seconds) and time how long it takes for the loops to complete. You can use Allegro timers for measuring the time passed.</p><p>Basically, your program should look 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>initialize program</td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td>initialize allegro blenders</td></tr><tr><td class="number">4</td><td>al_begin<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">5</td><td>loop <span class="k1">while</span> counter&gt;0<span class="k2">{</span></td></tr><tr><td class="number">6</td><td>  blend something</td></tr><tr><td class="number">7</td><td>  counter--</td></tr><tr><td class="number">8</td><td><span class="k2">}</span> </td></tr><tr><td class="number">9</td><td>al_end<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td>initialize Fladimir<span class="s">'s blenders</span></td></tr><tr><td class="number">12</td><td><span class="s">fl_begin=time()</span></td></tr><tr><td class="number">13</td><td><span class="s">loop while counter&gt;0{</span></td></tr><tr><td class="number">14</td><td><span class="s">  blend something</span></td></tr><tr><td class="number">15</td><td><span class="s">  counter--</span></td></tr><tr><td class="number">16</td><td><span class="s">} </span></td></tr><tr><td class="number">17</td><td><span class="s">fl_end=time()</span></td></tr><tr><td class="number">18</td><td><span class="s">print "allegro took " al_end-al_begin</span></td></tr><tr><td class="number">19</td><td><span class="s">print "Fladimir tool" fl_end-fl_begin</span></td></tr></tbody></table></div></div><p>
It is not that profiling in general is meaningless. Just that it isn&#39;t the best tool in your case.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HoHo)</author>
		<pubDate>Sat, 03 Feb 2007 14:43:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>For timing of this sort I&#39;d use something a little higher res <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> like gettimeofday on unix.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sat, 03 Feb 2007 22:16:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>High-res is meaningful if you try to time stuff that take less than a few tenths of a second. For stuff that takes &gt;5s any other method is good enough <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HoHo)</author>
		<pubDate>Sat, 03 Feb 2007 22:37:50 +0000</pubDate>
	</item>
</rss>
