<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>FPS Drop (probably an easy fix)</title>
		<link>http://www.allegro.cc/forums/view/614271</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 21 May 2014 08:13:25 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ll preface this by saying I&#39;m pretty new to allegro, and a pretty bad programmer overall. The attatched code has been created expressly to reproduce my issue, and isn&#39;t currently in use in any project. I&#39;m using the current stable release (5.0.10). I&#39;m statically linking the -static-mt files with MinGW.</p><p>Description of my issue:<br />When I compile and run the attatched code, the game will run as normal (40fps) for around 4 seconds, and then suddenly drop down to 14fps, and remain like that for the rest of the time the game is running. I&#39;m trying to figure out if this is an issue with my computer, or with the way I am coding... Hopfully someone can help me with this issue.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (VMaximus)</author>
		<pubDate>Tue, 20 May 2014 08:25:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You should use </p><pre>&lt;code&gt;</pre><p> my code here </p><pre>&lt;/code&gt;</pre><p> and past examples directly into messages in here in the future, makes life easier = faster replies... here&#39;s the code for other&#39;s convenience...</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;allegro.h&gt;</span>
<span class="number">  2</span><span class="p">#include &lt;allegro_image.h&gt;</span>
<span class="number">  3</span><span class="p">#include &lt;allegro_font.h&gt;</span>
<span class="number">  4</span><span class="p">#include &lt;allegro_ttf.h&gt;</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="k1">int</span> MAXIMAGES <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span> <span class="c">//only 2 images used in this test</span>
<span class="number">  7</span><span class="k1">int</span> MAXFONTS <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> <span class="c">//font used to draw the fps</span>
<span class="number">  8</span><span class="k1">int</span> ScrW <span class="k3">=</span> <span class="n">800</span><span class="k2">;</span> <span class="c">//display width</span>
<span class="number">  9</span><span class="k1">int</span> ScrH <span class="k3">=</span> <span class="n">640</span><span class="k2">;</span> <span class="c">//display height</span>
<span class="number"> 10</span>
<span class="number"> 11</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="number"> 12</span><span class="k2">{</span>
<span class="number"> 13</span>
<span class="number"> 14</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>gamedisp<span class="k2">;</span><span class="c">//display</span>
<span class="number"> 15</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> images <span class="k2">[</span>MAXIMAGES<span class="k2">]</span><span class="k2">;</span><span class="c">//array of images</span>
<span class="number"> 16</span><a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a><span class="k3">*</span> fonts <span class="k2">[</span>MAXFONTS<span class="k2">]</span><span class="k2">;</span><span class="c">//same but for fonts</span>
<span class="number"> 17</span>
<span class="number"> 18</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="number"> 19</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>
<span class="number"> 21</span>ALLEGRO_PATH <span class="k3">*</span>path <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_standard_path"><span class="a">al_get_standard_path</span></a><span class="k2">(</span>ALLEGRO_RESOURCES_PATH<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span><a href="http://www.allegro.cc/manual/al_set_path_filename"><span class="a">al_set_path_filename</span></a><span class="k2">(</span>path,<span class="s">"/bin/images/title.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>images<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">=</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_path_cstr"><span class="a">al_path_cstr</span></a><span class="k2">(</span>path,<span class="s">'/'</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span><a href="http://www.allegro.cc/manual/al_set_path_filename"><span class="a">al_set_path_filename</span></a><span class="k2">(</span>path,<span class="s">"/bin/images/byval.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>images<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k3">=</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_path_cstr"><span class="a">al_path_cstr</span></a><span class="k2">(</span>path,<span class="s">'/'</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>
<span class="number"> 27</span>gamedisp<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>ScrW,ScrH<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>
<span class="number"> 29</span><a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span><a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span><a href="http://www.allegro.cc/manual/al_set_path_filename"><span class="a">al_set_path_filename</span></a><span class="k2">(</span>path,<span class="s">"/bin/fonts/font.ttf"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>fonts<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">=</span><a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_path_cstr"><span class="a">al_path_cstr</span></a><span class="k2">(</span>path,<span class="s">'/'</span><span class="k2">)</span>,<span class="n">14</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>
<span class="number"> 34</span><span class="k1">float</span> fps<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> <span class="c">//fps is 0 before any frames are rendered</span>
<span class="number"> 35</span><span class="k1">double</span> fpstime <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_time"><span class="a">al_get_time</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// used to compare frame times and give FPS</span>
<span class="number"> 36</span>
<span class="number"> 37</span>    <span class="k1">while</span> <span class="k2">(</span><span class="n">1</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/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"> 40</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>images<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,<span class="n">259</span>,<span class="n">248</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//draws image 1 so its centered</span>
<span class="number"> 41</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>images<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>,<span class="k2">(</span>ScrW<span class="k3">/</span><span class="n">2</span><span class="k2">)</span>,<span class="k2">(</span>ScrH<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">+</span><span class="n">30</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//draws image 2 so it fits with image 1</span>
<span class="number"> 42</span>  <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>fonts<span class="k2">[</span><span class="n">0</span><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">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="s">"FPS: %f"</span>,fps<span class="k2">)</span><span class="k2">;</span><span class="c">//print fps</span>
<span class="number"> 43</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="c">//flip</span>
<span class="number"> 44</span>
<span class="number"> 45</span>    <span class="k1">double</span> new_time <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_time"><span class="a">al_get_time</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 46</span>    fps <span class="k3">=</span> <span class="n">1</span>.<span class="n">0f</span><span class="k3">/</span><span class="k2">(</span>new_time-fpstime<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 47</span>    fpstime <span class="k3">=</span> new_time<span class="k2">;</span><span class="c">//new fps</span>
<span class="number"> 48</span>    <span class="k2">}</span>
<span class="number"> 49</span>
<span class="number"> 50</span>
<span class="number"> 51</span>
<span class="number"> 52</span><span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 53</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Roy)</author>
		<pubDate>Tue, 20 May 2014 09:12:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>One thing I see is that you are loading your bitmaps before you create your display. Without a display set as the current context you cannot create video bitmaps, so they are being created as memory bitmaps. Load your bitmaps after you create your display and see if that fixes things.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 20 May 2014 09:37:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That ended up doing the trick, thanks a lot.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (VMaximus)</author>
		<pubDate>Wed, 21 May 2014 08:13:25 +0000</pubDate>
	</item>
</rss>
