<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>ALLEGRO_RESIZABLE &amp; Mouse Pointer Collision Detection</title>
		<link>http://www.allegro.cc/forums/view/614754</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 31 Oct 2014 12:02:04 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>When using al_set_new_display_flags(ALLEGRO_RESIZABLE), is there a way to do the following:</p><p><b>1)</b> Have a program detect the size of the window as it&#39;s being manually changed by the player using the mouse. I understand the actual created display size remains the same, but would like to change certain objects size and position for collision detection to work correctly between the mouse pointer and those objects after the window has been resized by the player, otherwise the collision detection between the mouse pointer and those objects remains in the same position relative to the initially created display, whilst the graphics change size and position as the display window size is manually adjusted. In other words the collision detection happens in the wrong visual place on screen.</p><p><b>2)</b> After initializing al_set_new_display_flags(ALLEGRO_RESIZABLE) and creating the display, is there a way to program the window display size as opposed to the player adjusting it using the mouse. It&#39;s just that if a player adjusts the window size, then switches into fullscreen, and then back to resizable, I&#39;d like to know what the previous resizable size was so I can set it back to that size, rather than it be initiated at the actual created display size.</p><p><b>Part of My Next Entry Quoted Below, Which I can&#39;t Edit Now, Is BALONEY</b></p><div class="quote_container"><div class="title"><a href="http://">GaryT</a> said:</div><div class="quote"><p>which I guess is essential, as if a player manually changed the window size in this way during play and the created display al_create_display(WIDTH, HEIGHT) was to change also, then the game/programming would crash.</p></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Mon, 27 Oct 2014 17:35:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>1. I&#39;m not sure I quite understand, but when Allegro detects a resize, you are sent the event which has the new display size:</p><p>I do something like:
</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="k1">void</span> SceneManager::defaultBeginEventHandler<span class="k2">(</span> <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a><span class="k3">*</span>evt <span class="k2">)</span>
<span class="number">  2</span>  <span class="k2">{</span>
<span class="number">  3</span>
<span class="number">  4</span>    m_currentScene-&gt;processGuiInputEvent<span class="k2">(</span>evt<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>    <span class="k1">if</span><span class="k2">(</span>evt-&gt;type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER <span class="k3">&amp;</span><span class="k3">&amp;</span> evt-&gt;timer.source <span class="k3">=</span><span class="k3">=</span> m_gameTimer<span class="k2">)</span>
<span class="number">  7</span>    <span class="k2">{</span>
<span class="number">  8</span>      <span class="k1">if</span><span class="k2">(</span>m_transitioning<span class="k2">)</span>
<span class="number">  9</span>      <span class="k2">{</span>
<span class="number"> 10</span>        m_transitionOpacity <span class="k3">-</span><span class="k3">=</span> m_transitionRate<span class="k2">;</span>
<span class="number"> 11</span>
<span class="number"> 12</span>        <span class="k1">if</span><span class="k2">(</span>m_transitionOpacity <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 13</span>        <span class="k2">{</span>
<span class="number"> 14</span>          m_transitionOpacity <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 15</span>          m_transitioning <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 16</span>        <span class="k2">}</span>
<span class="number"> 17</span>      <span class="k2">}</span>
<span class="number"> 18</span>      m_needsRedraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 19</span>      m_devices-&gt;getAudioManager<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>logic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>      m_currentScene-&gt;sceneLogic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>      m_currentScene-&gt;processGuiLogic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>      m_currentScene-&gt;logic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>      m_devices-&gt;getNetClient<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>tick<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>    <span class="k2">}</span>
<span class="number"> 25</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>evt-&gt;type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_RESIZE<span class="k2">)</span>
<span class="number"> 26</span>    <span class="k2">{</span>
<span class="number"> 27</span>      m_needsResize <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 28</span>      m_newScreenWidth <span class="k3">=</span> evt-&gt;display.width<span class="k2">;</span>
<span class="number"> 29</span>      m_newScreenHeight <span class="k3">=</span> evt-&gt;display.height<span class="k2">;</span>
<span class="number"> 30</span>      sendResizeMessage<span class="k2">(</span>m_newScreenWidth,m_newScreenHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>    <span class="k2">}</span>
<span class="number"> 32</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>m_needsResize<span class="k2">)</span>
<span class="number"> 33</span>    <span class="k2">{</span>
<span class="number"> 34</span>      m_needsResize <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 35</span>      
<span class="number"> 36</span>    <span class="k2">}</span>
<span class="number"> 37</span>  <span class="k2">}</span>
<span class="number"> 38</span>
<span class="number"> 39</span>...
<span class="number"> 40</span>
<span class="number"> 41</span>  <span class="k1">void</span> SceneManager::sendResizeMessage<span class="k2">(</span> <span class="k1">int</span> w, <span class="k1">int</span> h <span class="k2">)</span>
<span class="number"> 42</span>  <span class="k2">{</span>
<span class="number"> 43</span>    <span class="c">//this is a bug in Allegro</span>
<span class="number"> 44</span>    <span class="k1">if</span><span class="k2">(</span>w <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> h <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 45</span>    <span class="k2">{</span>
<span class="number"> 46</span>      <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 47</span>    <span class="k2">}</span>
<span class="number"> 48</span>
<span class="number"> 49</span>    <a href="http://www.allegro.cc/manual/al_acknowledge_resize"><span class="a">al_acknowledge_resize</span></a><span class="k2">(</span>m_devices-&gt;getDisplay<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>getContext<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 50</span>    m_g.resizeBuffer<span class="k2">(</span>w,h<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 51</span>    <span class="c">//stop transition</span>
<span class="number"> 52</span>    m_transitioning <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 53</span>    m_transitionOpacity <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number"> 54</span>    m_currentScene-&gt;processGuiResizeEvent<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 55</span>    m_currentScene-&gt;resizeEvent<span class="k2">(</span>
<span class="number"> 56</span>      w,h<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 57</span>    Log::write<span class="k2">(</span><span class="s">"Scene Manager"</span>,<span class="s">"Resize Event: Width:"</span> <span class="k3">+</span>  StringUtil::toString<span class="k2">(</span>w<span class="k2">)</span> <span class="k3">+</span> 
<span class="number"> 58</span>      <span class="s">" Height:"</span> <span class="k3">+</span> StringUtil::toString<span class="k2">(</span>h<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 59</span>  <span class="k2">}</span>
</div></div><p>

So with that, you get the new display size and you can update your gui however you want.</p><p>2. To resize it yourself you do <a href="http://alleg.sourceforge.net/a5docs/refman/display.html#al_resize_display">http://alleg.sourceforge.net/a5docs/refman/display.html#al_resize_display</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 27 Oct 2014 19:50:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So far I&#39;ve found resizing the window with the mouse (whilst playing the game) when using ALLEGRO_RESIZABLE only shrinks or expands the graphics, which I guess is essential, as if a player manually changed the window size in this way during play and the created display al_create_display(WIDTH, HEIGHT) was to change also, then the game/programming would crash.</p><p>So what I&#39;m finding (during play) is that even though the graphics shrink and expand as they should when using the mouse to adjust the window size, the mouse pointer collision detection isn&#39;t aligned with the graphics because the mouse pointer still references the created display al_create_display(WIDTH, HEIGHT) which understandably doesn&#39;t change as the window is resized. To describe this, if the window gets smaller the collision detection happens to the right of the objects as graphically they are displayed more to the left (the window shrinks along with the displayed graphics within it, but al_create_display(WIDTH, HEIGHT) stays the same). Similarly if the window gets larger the collision detection happens to the left of the objects.</p><p>I&#39;m guessing now the features which I&#39;m after don&#39;t exist within ALLEGRO. Please note this does not stop my main game from playing at all, but just messes up the various stages where I need to have the mouse effectively click on certain button images.</p><p>If access to the ALLEGRO_RESIZABLE window were available as parameters Width and Height, then I guess there would be various ways to compensate. For example if the window was made smaller, the int x = al_get_mouse_state_axis(&amp;state, 0) could be increased proportionally to the window getting smaller effectively making int x collision detect correctly relative to al_create_display(WIDTH, HEIGHT).</p><p>With regards to my initial post where I suggested changing the size and positions of various objects, I&#39;m now thinking that would only work if there was a second copy of the objects, one unchanged for the graphics (ALLEGRO_RESIZABLE), and one which does change proportionally to the resized window.</p><p>I think the easiest way (because of less work to do) might be the first way, adding or subtracting to the x = al_get_mouse_state_axis(&amp;state, 0) values.</p><p>So it seems that for my question 1) I need access to the ALLEGRO_RESIABLE manually adjusted window width and height in the form of parameters, to work with within my programming, and for my question 2) I guess this also is not possible for me to do.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Mon, 27 Oct 2014 21:10:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m just a bit confused by some of this. I understand your problem, but I don&#39;t quite understand why it should happen.</p><p>My game dynamically resizes and repositions elements and my gui mouse stuff works fine.</p><p>What I find strange too is that you&#39;re saying changing the window size affects the mouse position returned, which should not be since mouse starts at top left (0,0).</p><p>Is there a way you could either send your game src or make an example that demonstrates the problem. There might just be something simple you need to do.</p><p>Also, are you just upscaling your content? Because in that case, the mouse and gui positions won&#39;t line up, you&#39;d have to transform your mouse position. I have code for that in my gui api if you need it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 27 Oct 2014 21:23:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Are you saying if you have an object exactly in the middle of the display which can be collision detected with the mouse pointer, that when in ALLEGRO_RESIZABLE if you manually resize the window (using the mouse) to approximately half the size whilst playing, that your object which is now half the size and still in the middle of the display (like it is for me), still has the collision detection with the mouse pointer working correctly, both being aligned.</p><p>For me changing the window size does not affect the mouse position returned. If it did so proportionally to the window size being changed as I&#39;ve described, that might be the perfect solution.</p><p>I&#39;ve rewritten some of my last post to try and make it a bit clearer, as some of it was not good.</p><p>Thank you jmasterx for helping with this <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Mon, 27 Oct 2014 21:34:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s not about changing the mouse position but changing the button position. When you scale your graphics your button rectangle changes. My GUI mouse stuff works fine with al_resize_display and with ALLEGRO_EVENT_DISPLAY_RESIZE. Try and show us example code that doesn&#39;t work. You can use &lt;code&gt;&lt;/code&gt; tags.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 27 Oct 2014 21:46:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Right, so you are proportionally resizing your elements.</p><p>Whereas in my case, in my gui, I literally have an algorithm running that says:</p><p>onResize:<br />position = screen / 2; //center<br />size = screen * 0.25f;</p><p>And thus, my mouse coordinates make sense.</p><p>I suspect that regardless of the size of your screen, your elements just RENDER proportionally, so you do not actually change their location and size.</p><p>This is the class I made that can transform your mouse.</p><p><a href="https://github.com/jmasterx/Agui/blob/master/src/Agui/Transform.cpp">https://github.com/jmasterx/Agui/blob/master/src/Agui/Transform.cpp</a></p><p>My gui uses it like this:
</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="k1">void</span> Gui::_dispatchMouseEvents<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span><span class="k1">if</span><span class="k2">(</span>isDelayingMouseDownEvents<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  4</span><span class="k2">{</span>
<span class="number">  5</span><span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>queuedMouseDown.empty<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  6</span><span class="k2">{</span>
<span class="number">  7</span>MouseInput mi <span class="k3">=</span> queuedMouseDown.back<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>queuedMouseDown.pop<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span><span class="k1">if</span><span class="k2">(</span>mi.type <span class="k3">=</span><span class="k3">=</span> MouseEvent::MOUSE_DOWN<span class="k2">)</span>
<span class="number"> 10</span><span class="k2">{</span>
<span class="number"> 11</span>_dispatchMousePreview<span class="k2">(</span>mi,mi.type<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span><span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>mouseEvent.isConsumed<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 13</span>handleMouseDown<span class="k2">(</span>mi<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span><span class="k2">}</span>
<span class="number"> 15</span><span class="k2">}</span>
<span class="number"> 16</span><span class="k2">}</span>
<span class="number"> 17</span><span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>input-&gt;isMouseQueueEmpty<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 18</span><span class="k2">{</span>
<span class="number"> 19</span>MouseInput mi <span class="k3">=</span> input-&gt;dequeueMouseInput<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span><span class="k1">if</span><span class="k2">(</span>isUsingTransform<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 21</span><span class="k2">{</span>
<span class="number"> 22</span><span class="k1">float</span> x <span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>mi.x<span class="k2">;</span>
<span class="number"> 23</span><span class="k1">float</span> y <span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>mi.y<span class="k2">;</span>
<span class="number"> 24</span>transform.transformPoint<span class="k2">(</span><span class="k3">&amp;</span>x,<span class="k3">&amp;</span>y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>mi.x <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>x<span class="k2">;</span>
<span class="number"> 26</span>mi.y <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>y<span class="k2">;</span>
<span class="number"> 27</span><span class="k2">}</span>
</div></div><p>

So the idea is, whatever transformation is applied to upscale the rendering must be applied to your mouse position.</p><p>The alternative, as I had mentioned is to change the size and position of your gui elements so that the mouse coordinates are screen-relative rather than world-oriented.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 27 Oct 2014 21:49:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thank you both <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>I&#39;m not resizing the &#39;object graphics&#39; or the &#39;created display&#39; in the way that is perhaps being assumed. I&#39;m not using any other resize() function/class other than the one below. </p><p>I&#39;m using: al_set_new_display_flags(ALLEGRO_RESIZABLE), which only allows the display window to change size via use of the mouse whilst the game is running.</p><p>Please confirm that it&#39;s (ALLEGRO_RESIZABLE) to which you are referring <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Mon, 27 Oct 2014 22:06:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>One important thing, do you call al_acknowledge_resize ?</p><p>If you do not you will get the issues you seem to be describing because the internal buffer might not resize itself if you do not acknowledge the resize event.</p><p><a href="http://alleg.sourceforge.net/a5docs/refman/display.html#al_acknowledge_resize">http://alleg.sourceforge.net/a5docs/refman/display.html#al_acknowledge_resize</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 27 Oct 2014 22:08:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ah flipping heck.</p><p>No I don&#39;t. Not yet anyway.</p><p>I have to ask in excitement before I try It <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />, should this work with al_set_new_display_flags(ALLEGRO_RESIZABLE) as I&#39;ve described.</p><p>I&#39;ll give it a try <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Mon, 27 Oct 2014 22:16:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It only works with that display flag <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /><br />in your event loop:</p><p>case ALLEGRO_EVENT_DISPLAY_RESIZE:<br />//call here<br />break;</p><p><a href="http://alleg.sourceforge.net/a5docs/refman/events.html#allegro_event_display_resize">http://alleg.sourceforge.net/a5docs/refman/events.html#allegro_event_display_resize</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 27 Oct 2014 22:19:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m only doing the following so far. I must be missing something by the looks of it. It&#39;s doing something but I need to figure it out. I&#39;m not yet using &quot;ALLEGRO_EVENT_DISPLAY_RESIZE&quot;. Do I need to add that in. I&#39;ll keep at it.</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>DestroyBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  2</span>DestroyFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>            
<span class="number">  5</span>
<span class="number">  6</span><a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_RESIZABLE<span class="k2">)</span><span class="k2">;</span>          
<span class="number">  7</span>
<span class="number">  8</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>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>        
<span class="number"> 10</span>LoadBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>              
<span class="number"> 11</span>LoadFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Mon, 27 Oct 2014 22:32:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What does your main loop look like?</p><p>This is old and dated but might help <a href="https://www.allegro.cc/forums/thread/603224">https://www.allegro.cc/forums/thread/603224</a></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="c">/*======================================</span>
<span class="number">   2</span><span class="c">ALLEGRO 5 TEMPLATE</span>
<span class="number">   3</span><span class="c">======================================== */</span>
<span class="number">   4</span>
<span class="number">   5</span><span class="p">#include &lt;stdlib.h&gt;  //Standard library</span>
<span class="number">   6</span><span class="p">#include &lt;string.h&gt;  //String functions</span>
<span class="number">   7</span><span class="p">#include &lt;sstream&gt;  //More string functions</span>
<span class="number">   8</span>
<span class="number">   9</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;allegro5/allegro5.h&gt;</span>
<span class="number">  11</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">  12</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">  13</span><span class="p">#include &lt;allegro5/allegro_audio.h&gt;</span>
<span class="number">  14</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">  15</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">  16</span><span class="p">#include &lt;allegro5/allegro_vorbis.h&gt;</span>
<span class="number">  17</span><span class="p">#include &lt;allegro5/allegro_flac.h&gt;</span>
<span class="number">  18</span><span class="p">#include &lt;allegro5/allegro_opengl.h&gt;</span>
<span class="number">  19</span><span class="p">#include &lt;allegro5/allegro_physfs.h&gt;</span>
<span class="number">  20</span><span class="p">#include &lt;physfs.h&gt;</span>
<span class="number">  21</span>
<span class="number">  22</span><span class="p">#include &lt;vector&gt;    //Dynamic array data structure</span>
<span class="number">  23</span><span class="p">#include &lt;queue&gt;  //Queue FIFO data structure</span>
<span class="number">  24</span><span class="p">#include &lt;cmath&gt;    // C Math functions</span>
<span class="number">  25</span><span class="p">#include &lt;ctime&gt;  // C Time functions</span>
<span class="number">  26</span>
<span class="number">  27</span><span class="p">#define FRAME_RATE 60</span>
<span class="number">  28</span>
<span class="number">  29</span><span class="c">//Declarations</span>
<span class="number">  30</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">  31</span><a href="http://www.allegro.cc/manual/ALLEGRO_MONITOR_INFO"><span class="a">ALLEGRO_MONITOR_INFO</span></a> info<span class="k2">;</span>
<span class="number">  32</span><a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer<span class="k2">;</span>
<span class="number">  33</span><span class="k1">bool</span> done<span class="k2">;</span>
<span class="number">  34</span><span class="c">//color</span>
<span class="number">  35</span><a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> BLACK <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">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span>
<span class="number">  37</span><span class="c">//Keyboard</span>
<span class="number">  38</span><span class="k1">bool</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span><span class="n">256</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  39</span>
<span class="number">  40</span><span class="c">//Mouse</span>
<span class="number">  41</span><span class="k1">int</span> mX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  42</span><span class="k1">int</span> mY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  43</span>
<span class="number">  44</span><span class="k1">void</span> init<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  45</span>  <span class="c">//Install event handlers</span>
<span class="number">  46</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">  47</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">  48</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">  49</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">  50</span>    <a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  51</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="number">  52</span>    <a href="http://www.allegro.cc/manual/al_install_joystick"><span class="a">al_install_joystick</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>    <a href="http://www.allegro.cc/manual/al_install_audio"><span class="a">al_install_audio</span></a><span class="k2">(</span>ALLEGRO_AUDIO_DRIVER_AUTODETECT<span class="k2">)</span><span class="k2">;</span>
<span class="number">  54</span>    al_init_ogg_vorbis_addon<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  55</span>    
<span class="number">  56</span>    <span class="c">//For PhysFS</span>
<span class="number">  57</span>    <span class="c">//PHYSFS_init(0);</span>
<span class="number">  58</span>    <span class="c">//PHYSFS_addToSearchPath("",1);</span>
<span class="number">  59</span>    
<span class="number">  60</span>  <span class="c">// Start a timer to regulate speed</span>
<span class="number">  61</span>
<span class="number">  62</span>  timer <span class="k3">=</span> al_install_timer<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FRAME_RATE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>
<span class="number">  65</span>  <span class="c">//for audio....</span>
<span class="number">  66</span>  <a href="http://www.allegro.cc/manual/al_reserve_samples"><span class="a">al_reserve_samples</span></a><span class="k2">(</span><span class="n">64</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  67</span>
<span class="number">  68</span>  <span class="c">//for keyboard...</span>
<span class="number">  69</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_569.html" target="_blank">memset</a><span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a>,<span class="n">0</span>,<span class="k1">sizeof</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>
<span class="number">  71</span>  <span class="c">//show the mouse</span>
<span class="number">  72</span>  <a href="http://www.allegro.cc/manual/al_show_mouse_cursor"><span class="a">al_show_mouse_cursor</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number">  73</span>
<span class="number">  74</span>  <span class="c">//make the random function randomer</span>
<span class="number">  75</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>
<span class="number">  77</span>
<span class="number">  78</span>  <span class="c">//show screen</span>
<span class="number">  79</span>    <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_RESIZABLE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</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">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>
<span class="number">  82</span>    <span class="c">//For PhysFS</span>
<span class="number">  83</span>    <span class="c">//al_set_physfs_file_interface();</span>
<span class="number">  84</span>
<span class="number">  85</span>    <span class="c">//Window Title</span>
<span class="number">  86</span>    <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span><span class="s">"Allegro 5 Template"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>  
<span class="number">  88</span>
<span class="number">  89</span>  
<span class="number">  90</span>  
<span class="number">  91</span><span class="k2">}</span>
<span class="number">  92</span>
<span class="number">  93</span><span class="c">//Mouse_Down</span>
<span class="number">  94</span><span class="k1">void</span> mousedown<span class="k2">(</span>ALLEGRO_MOUSE_EVENT <span class="k3">*</span>mouse<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  95</span>
<span class="number">  96</span>  <span class="k2">}</span>
<span class="number">  97</span><span class="c">//Mouse Up</span>
<span class="number">  98</span><span class="k1">void</span> mouseup<span class="k2">(</span>ALLEGRO_MOUSE_EVENT <span class="k3">*</span>mouse<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  99</span>  
<span class="number"> 100</span>  <span class="k2">}</span>
<span class="number"> 101</span>
<span class="number"> 102</span><span class="c">// If a key is pressed down, add it to the key array</span>
<span class="number"> 103</span><span class="k1">void</span> keydown<span class="k2">(</span>ALLEGRO_KEYBOARD_EVENT <span class="k3">*</span>kb<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 104</span>  <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>kb-&gt;keycode<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 105</span>
<span class="number"> 106</span>
<span class="number"> 107</span>  <span class="k1">if</span><span class="k2">(</span>kb-&gt;keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 108</span>    
<span class="number"> 109</span>    done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 110</span>  <span class="k2">}</span>
<span class="number"> 111</span><span class="k2">}</span>
<span class="number"> 112</span>
<span class="number"> 113</span><span class="c">// If a key is released, mark it as unpressed</span>
<span class="number"> 114</span><span class="k1">void</span> keyup<span class="k2">(</span>ALLEGRO_KEYBOARD_EVENT <span class="k3">*</span>kb<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 115</span>  <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>kb-&gt;keycode<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 116</span><span class="k2">}</span>
<span class="number"> 117</span>
<span class="number"> 118</span><span class="c">// If an operating system repeat event comes in, set the flag</span>
<span class="number"> 119</span><span class="k1">void</span> keyrepeat<span class="k2">(</span>ALLEGRO_KEYBOARD_EVENT <span class="k3">*</span>kb<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 120</span>
<span class="number"> 121</span><span class="k2">}</span>
<span class="number"> 122</span>
<span class="number"> 123</span><span class="c">//Mouse Move</span>
<span class="number"> 124</span>
<span class="number"> 125</span><span class="k1">void</span> mouseaxes<span class="k2">(</span>ALLEGRO_MOUSE_EVENT <span class="k3">*</span>mouse<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 126</span>  mX <span class="k3">=</span> mouse-&gt;x<span class="k2">;</span>
<span class="number"> 127</span>  mY <span class="k3">=</span> mouse-&gt;y<span class="k2">;</span>
<span class="number"> 128</span>
<span class="number"> 129</span>  <span class="k2">}</span>
<span class="number"> 130</span><span class="c">//RENDER CURRENT FRAME</span>
<span class="number"> 131</span>  <span class="k1">void</span> render<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 132</span>  <span class="k2">{</span>
<span class="number"> 133</span> <span class="c">//draw to the screen</span>
<span class="number"> 134</span>
<span class="number"> 135</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>BLACK<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 136</span> <span class="c">//code goes here</span>
<span class="number"> 137</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"> 138</span>
<span class="number"> 139</span>
<span class="number"> 140</span>
<span class="number"> 141</span>  <span class="k2">}</span>
<span class="number"> 142</span>
<span class="number"> 143</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"> 144</span>
<span class="number"> 145</span><span class="k2">{</span>
<span class="number"> 146</span>  <span class="c">//initialize game</span>
<span class="number"> 147</span>  init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 148</span>  <span class="k1">bool</span> need_redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 149</span>
<span class="number"> 150</span>  <span class="c">//Main Loop</span>
<span class="number"> 151</span>
<span class="number"> 152</span><span class="c">//***** Start Main Code Here *****</span>
<span class="number"> 153</span>
<span class="number"> 154</span>  <span class="c">// Start the event queue to handle keyboard input and our timer</span>
<span class="number"> 155</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>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"> 156</span>  <a href="http://www.allegro.cc/manual/al_set_new_bitmap_flags"><span class="a">al_set_new_bitmap_flags</span></a><span class="k2">(</span>ALLEGRO_VIDEO_BITMAP<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 157</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>queue, <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_SOURCE"><span class="a">ALLEGRO_EVENT_SOURCE</span></a><span class="k3">*</span><span class="k2">)</span><a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 158</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>queue, <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_SOURCE"><span class="a">ALLEGRO_EVENT_SOURCE</span></a><span class="k3">*</span><span class="k2">)</span><a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 159</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>queue, <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_SOURCE"><span class="a">ALLEGRO_EVENT_SOURCE</span></a><span class="k3">*</span><span class="k2">)</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 160</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>queue, <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_SOURCE"><span class="a">ALLEGRO_EVENT_SOURCE</span></a><span class="k3">*</span><span class="k2">)</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 161</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number"> 162</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 163</span>  
<span class="number"> 164</span>    <span class="c">// Block until an event enters the queue</span>
<span class="number"> 165</span>        <span class="k1">if</span> <span class="k2">(</span>need_redraw <span class="k3">&amp;</span><span class="k3">&amp;</span> al_event_queue_is_empty<span class="k2">(</span>queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 166</span>        render<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 167</span>        need_redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 168</span>      <span class="k2">}</span>
<span class="number"> 169</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>queue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 170</span>
<span class="number"> 171</span>    <span class="k1">switch</span><span class="k2">(</span>event.type<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 172</span>    <span class="k1">case</span> ALLEGRO_EVENT_MOUSE_AXES:
<span class="number"> 173</span>    mouseaxes<span class="k2">(</span><span class="k3">&amp;</span>event.mouse<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 174</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 175</span>  
<span class="number"> 176</span>  <span class="k1">case</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN:
<span class="number"> 177</span>    mousedown<span class="k2">(</span><span class="k3">&amp;</span>event.mouse<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 178</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 179</span>  
<span class="number"> 180</span>  <span class="k1">case</span> ALLEGRO_EVENT_MOUSE_BUTTON_UP:
<span class="number"> 181</span>    mouseup<span class="k2">(</span><span class="k3">&amp;</span>event.mouse<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 182</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 183</span>
<span class="number"> 184</span>  <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
<span class="number"> 185</span>    keydown<span class="k2">(</span><span class="k3">&amp;</span>event.keyboard<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 186</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 187</span>
<span class="number"> 188</span>  <span class="k1">case</span> ALLEGRO_EVENT_KEY_UP:
<span class="number"> 189</span>    keyup<span class="k2">(</span><span class="k3">&amp;</span>event.keyboard<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 190</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 191</span>      
<span class="number"> 192</span>  <span class="k1">case</span> ALLEGRO_EVENT_KEY_REPEAT:
<span class="number"> 193</span>    keyrepeat<span class="k2">(</span><span class="k3">&amp;</span>event.keyboard<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 194</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 195</span>  
<span class="number"> 196</span>  <span class="k1">case</span> ALLEGRO_EVENT_TIMER:
<span class="number"> 197</span>    need_redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 198</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 199</span>  <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_RESIZE:
<span class="number"> 200</span>    <a href="http://www.allegro.cc/manual/al_acknowledge_resize"><span class="a">al_acknowledge_resize</span></a><span class="k2">(</span>event.display.source<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 201</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 202</span>  <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_CLOSE:
<span class="number"> 203</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 204</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 205</span>    <span class="k2">}</span>
<span class="number"> 206</span>    
<span class="number"> 207</span>  
<span class="number"> 208</span>  <span class="k2">}</span>
<span class="number"> 209</span><span class="c">//***** End Main Code Here *****</span>
<span class="number"> 210</span>
<span class="number"> 211</span>
<span class="number"> 212</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 213</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 27 Oct 2014 22:33:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here&#39;s the entire routine. Most of this is relevant.</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="k2">{</span>
<span class="number">   2</span>  <span class="k1">bool</span> realevent<span class="k2">;</span>
<span class="number">   3</span>
<span class="number">   4</span>  <span class="k1">bool</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_858.html" target="_blank">wait</a> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>    
<span class="number">   5</span>  
<span class="number">   6</span>  <span class="k1">bool</span> isplaying <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">   7</span>
<span class="number">   8</span>  string displaymode<span class="k2">;</span>  <span class="c">// Used For Display Name In Buttons</span>
<span class="number">   9</span>
<span class="number">  10</span>  vector<span class="k3">&lt;</span>Buttons&gt; mode<span class="k2">(</span><span class="n">3</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">// Number Of Buttons To Display</span>
<span class="number">  11</span>
<span class="number">  12</span>  <span class="k1">int</span> stdx<span class="k3">=</span> <span class="n">100</span><span class="k2">;</span>  <span class="c">// Amount To Shift Everything Left</span>
<span class="number">  13</span>  <span class="k1">int</span> stdoffset <span class="k3">=</span> <span class="k3">-</span><span class="n">27</span><span class="k2">;</span>  <span class="c">// Vertical Pitch  </span>
<span class="number">  14</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos, stdoffset <span class="k3">+</span><span class="k3">=</span> <span class="n">40</span><span class="k2">)</span>  <span class="c">// Set mode Button Parameters</span>
<span class="number">  15</span>  <span class="k2">{</span>
<span class="number">  16</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">=</span> WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">-</span> stdx<span class="k2">;</span>   
<span class="number">  17</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">=</span> <span class="n">250</span> <span class="k3">+</span> stdoffset<span class="k2">;</span>            
<span class="number">  18</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">=</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">+</span> <span class="n">188</span><span class="k2">;</span>    
<span class="number">  19</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">=</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">+</span> <span class="n">23</span><span class="k2">;</span>      
<span class="number">  20</span>  <span class="k2">}</span>
<span class="number">  21</span>
<span class="number">  22</span>  <span class="k1">int</span> r <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number">  23</span>  <span class="k1">int</span> g <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number">  24</span>  <span class="k1">int</span> b <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>  
<span class="number">  25</span>
<span class="number">  26</span>  <span class="k1">while</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_858.html" target="_blank">wait</a><span class="k2">)</span>
<span class="number">  27</span>  <span class="k2">{</span>
<span class="number">  28</span>    realevent <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_next_event"><span class="a">al_get_next_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>    
<span class="number">  29</span>
<span class="number">  30</span>    <a href="http://www.allegro.cc/manual/al_get_mouse_state"><span class="a">al_get_mouse_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>state<span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>    <span class="k1">int</span> x <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_mouse_state_axis"><span class="a">al_get_mouse_state_axis</span></a><span class="k2">(</span><span class="k3">&amp;</span>state, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span>    <span class="k1">int</span> y <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_mouse_state_axis"><span class="a">al_get_mouse_state_axis</span></a><span class="k2">(</span><span class="k3">&amp;</span>state, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span>    <span class="k1">int</span> z <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_mouse_state_axis"><span class="a">al_get_mouse_state_axis</span></a><span class="k2">(</span><span class="k3">&amp;</span>state, <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  34</span>
<span class="number">  35</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">  36</span>
<span class="number">  37</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>
<span class="number">  38</span>    <span class="k2">{</span>
<span class="number">  39</span>      <span class="k1">if</span><span class="k2">(</span>pos <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  40</span>        displaymode <span class="k3">=</span> <span class="s">"Full Screen"</span><span class="k2">;</span>
<span class="number">  41</span>      <span class="k1">if</span><span class="k2">(</span>pos <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  42</span>        displaymode <span class="k3">=</span> <span class="s">"Windowed Normal"</span><span class="k2">;</span>
<span class="number">  43</span>      <span class="k1">if</span><span class="k2">(</span>pos <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number">  44</span>        displaymode <span class="k3">=</span> <span class="s">"Windowed Resizeable"</span><span class="k2">;</span>
<span class="number">  45</span>
<span class="number">  46</span>      <span class="k1">if</span><span class="k2">(</span>x <span class="k3">&gt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">&amp;</span><span class="k3">&amp;</span> x <span class="k3">&lt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">&amp;</span><span class="k3">&amp;</span> y <span class="k3">&gt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">&amp;</span><span class="k3">&amp;</span> y <span class="k3">&lt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy<span class="k2">)</span>  <span class="c">// Collision Check For Mode Buttons</span>
<span class="number">  47</span>      <span class="k2">{</span>
<span class="number">  48</span>        r <span class="k3">=</span> <span class="n">120</span><span class="k2">;</span>
<span class="number">  49</span>        g <span class="k3">=</span> <span class="n">120</span><span class="k2">;</span>
<span class="number">  50</span>        b <span class="k3">=</span> <span class="n">120</span><span class="k2">;</span>
<span class="number">  51</span>
<span class="number">  52</span>        <span class="k1">if</span><span class="k2">(</span>realevent<span class="k2">)</span>
<span class="number">  53</span>          <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>          
<span class="number">  54</span>            <span class="k1">if</span><span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  55</span>            <span class="k2">{</span>
<span class="number">  56</span>              DestroyBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</span>              DestroyFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  58</span>
<span class="number">  59</span>              <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// This Might Destroy Bitmaps And Fonts Anyway But Still Destroy Them Independently Just To Make Sure As Immediately Above          </span>
<span class="number">  60</span>
<span class="number">  61</span>              <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY_MODE"><span class="a">ALLEGRO_DISPLAY_MODE</span></a> disp_data<span class="k2">;</span>
<span class="number">  62</span>              <a href="http://www.allegro.cc/manual/al_get_display_mode"><span class="a">al_get_display_mode</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_num_display_modes"><span class="a">al_get_num_display_modes</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span>, <span class="k3">&amp;</span>disp_data<span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>              <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_FULLSCREEN<span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</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>disp_data.width, disp_data.height<span class="k2">)</span><span class="k2">;</span>              
<span class="number">  65</span>
<span class="number">  66</span>              fsx <span class="k3">=</span> <span class="k2">(</span>disp_data.width <span class="k3">-</span> WIDTH<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  67</span>              fsy <span class="k3">=</span> <span class="k2">(</span>disp_data.height <span class="k3">-</span> HEIGHT<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>          
<span class="number">  68</span>
<span class="number">  69</span>              LoadBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>              LoadFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  71</span>
<span class="number">  72</span>              <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>  <span class="c">// Move Buttons To The Right For Full Screen Mode</span>
<span class="number">  73</span>              <span class="k2">{</span>
<span class="number">  74</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">+</span><span class="k3">=</span> fsx<span class="k2">;</span>        <span class="c">// Because fsx And fsy Are Used To Set Actual Button Postions Just Here This Means    </span>
<span class="number">  75</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">+</span><span class="k3">=</span> fsy<span class="k2">;</span>        <span class="c">// al_get_mouse_state_axis() And The al_draw Functions For The Buttons! Dont Need To    </span>
<span class="number">  76</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">+</span><span class="k3">=</span> fsx<span class="k2">;</span>   <span class="c">// Use fsx And fsy !!!  </span>
<span class="number">  77</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">+</span><span class="k3">=</span> fsy<span class="k2">;</span>
<span class="number">  78</span>              <span class="k2">}</span>
<span class="number">  79</span>            <span class="k2">}</span>
<span class="number">  80</span>
<span class="number">  81</span>            <span class="k1">if</span><span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  82</span>            <span class="k2">{</span>
<span class="number">  83</span>              DestroyBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</span>              DestroyFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</span>
<span class="number">  86</span>              <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// This Might Destroy Bitmaps And Fonts Anyway But Still Destroy Them Independently Just To Make Sure As Immediately Above          </span>
<span class="number">  87</span>
<span class="number">  88</span>              <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>              
<span class="number">  90</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>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>          
<span class="number">  91</span>
<span class="number">  92</span>              LoadBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>              LoadFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  94</span>
<span class="number">  95</span>              <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>  <span class="c">// Move Buttons Back To The Left For Windowed Mode</span>
<span class="number">  96</span>              <span class="k2">{</span>
<span class="number">  97</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>        
<span class="number">  98</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>            
<span class="number">  99</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>     
<span class="number"> 100</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>
<span class="number"> 101</span>              <span class="k2">}</span>
<span class="number"> 102</span>
<span class="number"> 103</span>              fsx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 104</span>              fsy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 105</span>            <span class="k2">}</span>
<span class="number"> 106</span>
<span class="number"> 107</span>            <span class="k1">if</span><span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 108</span>            <span class="k2">{</span>
<span class="number"> 109</span>              DestroyBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</span>              DestroyFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</span>
<span class="number"> 112</span>              <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// This Might Destroy Bitmaps And Fonts Anyway But Still Destroy Them Independently Just To Make Sure As Immediately Above          </span>
<span class="number"> 113</span>
<span class="number"> 114</span>              <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_RESIZABLE<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 115</span>              
<span class="number"> 116</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>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>              
<span class="number"> 117</span>
<span class="number"> 118</span>              LoadBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</span>              LoadFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>
<span class="number"> 121</span>              <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>  <span class="c">// Move Buttons Back To The Left For Windowed Mode</span>
<span class="number"> 122</span>              <span class="k2">{</span>
<span class="number"> 123</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>        
<span class="number"> 124</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>            
<span class="number"> 125</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>     
<span class="number"> 126</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>
<span class="number"> 127</span>              <span class="k2">}</span>
<span class="number"> 128</span>
<span class="number"> 129</span>              fsx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 130</span>              fsy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 131</span>            <span class="k2">}</span>
<span class="number"> 132</span>      <span class="k2">}</span>
<span class="number"> 133</span>
<span class="number"> 134</span>      <span class="k1">else</span>
<span class="number"> 135</span>      <span class="k2">{</span>
<span class="number"> 136</span>        r <span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number"> 137</span>        g <span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number"> 138</span>        b <span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>            
<span class="number"> 139</span>      <span class="k2">}</span>      
<span class="number"> 140</span>      
<span class="number"> 141</span>      <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>mode<span class="k2">[</span>pos<span class="k2">]</span>.x, mode<span class="k2">[</span>pos<span class="k2">]</span>.y, mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx, mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span>r, g, b<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 142</span>      <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font18, <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">130</span>, <span class="n">190</span>, <span class="n">130</span><span class="k2">)</span>, mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">+</span> <span class="n">3</span>, mode<span class="k2">[</span>pos<span class="k2">]</span>.y, <span class="n">0</span>, displaymode.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>      
<span class="number"> 143</span>    <span class="k2">}</span>    
<span class="number"> 144</span>
<span class="number"> 145</span>    <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font30, <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">200</span>, <span class="n">255</span><span class="k2">)</span>, WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> fsx, <span class="n">350</span> <span class="k3">+</span> fsy, ALLEGRO_ALIGN_CENTRE, <span class="s">"Press 'M' To Begin Munching Or Press Space To Create A Maze"</span><span class="k2">)</span><span class="k2">;</span>        
<span class="number"> 146</span>
<span class="number"> 147</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"> 148</span>
<span class="number"> 149</span>    <span class="c">//al_acknowledge_resize(display);  // Obviously This Is Very Wrong Here</span>
<span class="number"> 150</span>
<span class="number"> 151</span>    <span class="k1">if</span><span class="k2">(</span>realevent<span class="k2">)</span>                                      
<span class="number"> 152</span>      <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 153</span>      <span class="k2">{</span>
<span class="number"> 154</span>        <span class="k1">if</span><span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_M<span class="k2">)</span>
<span class="number"> 155</span>        <span class="k2">{</span>
<span class="number"> 156</span>          <a href="http://www.delorie.com/djgpp/doc/libc/libc_858.html" target="_blank">wait</a> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>          
<span class="number"> 157</span>        <span class="k2">}</span>
<span class="number"> 158</span>
<span class="number"> 159</span>        <span class="k1">if</span><span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_SPACE<span class="k2">)</span>
<span class="number"> 160</span>        <span class="k2">{</span>
<span class="number"> 161</span>          BonusLevel<span class="k2">(</span>isplaying<span class="k2">)</span><span class="k2">;</span>          
<span class="number"> 162</span>        <span class="k2">}</span>
<span class="number"> 163</span>      <span class="k2">}</span>
<span class="number"> 164</span>  <span class="k2">}</span>
<span class="number"> 165</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Mon, 27 Oct 2014 22:57:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What if you tried:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_RESIZE<span class="k2">)</span>
<span class="k2">{</span>
   <a href="http://www.allegro.cc/manual/al_acknowledge_resize"><span class="a">al_acknowledge_resize</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

Also, you should really use al_wait_for_event()</p><p>That will make your game more robust, consume less cpu, and you&#39;ll know the event is real.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 27 Oct 2014 23:03:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve tried it here and also immediately after al_flip_display(); and I&#39;m still getting exactly the same behaviour. I&#39;ll keep investigating.</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="k1">if</span><span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  DestroyBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>  DestroyFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>  <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// This Might Destroy Bitmaps And Fonts Anyway But Still Destroy Them Independently Just To Make Sure As Immediately Above          </span>
<span class="number">  7</span>
<span class="number">  8</span>  <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_RESIZABLE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>              
<span class="number"> 10</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>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>              
<span class="number"> 11</span>
<span class="number"> 12</span>  LoadBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>  LoadFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>  <span class="c">// Move Buttons Back To The Left For Windowed Mode</span>
<span class="number"> 16</span>  <span class="k2">{</span>
<span class="number"> 17</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>        
<span class="number"> 18</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>            
<span class="number"> 19</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>     
<span class="number"> 20</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>
<span class="number"> 21</span>  <span class="k2">}</span>
<span class="number"> 22</span>
<span class="number"> 23</span>  fsx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 24</span>  fsy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 25</span><span class="k2">}</span>
<span class="number"> 26</span>
<span class="number"> 27</span><span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_RESIZE<span class="k2">)</span>
<span class="number"> 28</span><span class="k2">{</span>
<span class="number"> 29</span>  <a href="http://www.allegro.cc/manual/al_acknowledge_resize"><span class="a">al_acknowledge_resize</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Mon, 27 Oct 2014 23:16:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks, think I just got a handle wich I asked for in my thread, something a NOOB to allegro 5 can understand. <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (user1061)</author>
		<pubDate>Mon, 27 Oct 2014 23:22:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now I&#39;m thinking the internal buffer was luckily resizing itself anyway (&quot;internal buffer might not resize itself&quot;) without calling the following, and that the buffer resizing hasn&#39;t actually been the problem.</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="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_RESIZE<span class="k2">)</span>
<span class="number"> 2</span><span class="k2">{</span>
<span class="number"> 3</span>     <a href="http://www.allegro.cc/manual/al_acknowledge_resize"><span class="a">al_acknowledge_resize</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 4</span><span class="k2">}</span>
</div></div><p>

And that my initial ideas/observations are unfortunately correct <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /></p><p>Damn. I really hope I&#39;m wrong and talking total rubbish <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /></p><p>Please help <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /></p><p>I just want to point out once again for anybody new to this thread, that all graphics and all collision detection (apart from mouse), and so therefore the main part of my game all resize and work perfectly. It&#39;s only collision detection between the Mouse Pointer and the Various Objects as previously described that are the problem <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Mon, 27 Oct 2014 23:29:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The way you&#39;ve done your main loop is a bit chaotic and I can&#39;t spot the problem from just looking. I would have to run it through a debugger but I don&#39;t have time right now.</p><p>Could you try to use al_wait_for_event() and sort of try to make your loop a bit more like my template one. I know the template behaves correctly.</p><p>But right now you are making an infinite while loop and not waiting for events which might be causing problems.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 27 Oct 2014 23:39:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve changed it to use al_wait_for_event() but it&#39;s still the same. A massive thank you for all your support. It&#39;s beer O&#39;Clock for me now <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p><b>EDIT:</b> Just to clarify can somebody please comment/confirm on the following that I posted earlier in this post:</p><p>&quot;Are you saying if you have an object exactly in the middle of the display which can be collision detected with the mouse pointer, that when in ALLEGRO_RESIZABLE if you manually resize the window (using the mouse) to approximately half the size whilst playing, that your object which is now half the size and still in the middle of the display (like it is for me), still has the collision detection with the mouse pointer working correctly, both being aligned.&quot; <b>END OF EDIT</b></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="k2">{</span>
<span class="number">   2</span>  <span class="c">//bool realevent;</span>
<span class="number">   3</span>  <span class="k1">bool</span> realevent <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">   4</span>
<span class="number">   5</span>  <span class="k1">bool</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_858.html" target="_blank">wait</a> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>    
<span class="number">   6</span>  
<span class="number">   7</span>  <span class="k1">bool</span> isplaying <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">   8</span>
<span class="number">   9</span>  string displaymode<span class="k2">;</span>  <span class="c">// Used For Display Name In Buttons</span>
<span class="number">  10</span>
<span class="number">  11</span>  vector<span class="k3">&lt;</span>Buttons&gt; mode<span class="k2">(</span><span class="n">3</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">// Number Of Buttons To Display</span>
<span class="number">  12</span>
<span class="number">  13</span>  <span class="k1">int</span> stdx<span class="k3">=</span> <span class="n">100</span><span class="k2">;</span>  <span class="c">// Amount To Shift Everything Left</span>
<span class="number">  14</span>  <span class="k1">int</span> stdoffset <span class="k3">=</span> <span class="k3">-</span><span class="n">27</span><span class="k2">;</span>  <span class="c">// Vertical Pitch  </span>
<span class="number">  15</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos, stdoffset <span class="k3">+</span><span class="k3">=</span> <span class="n">40</span><span class="k2">)</span>  <span class="c">// Set mode Button Parameters</span>
<span class="number">  16</span>  <span class="k2">{</span>
<span class="number">  17</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">=</span> WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">-</span> stdx<span class="k2">;</span>   
<span class="number">  18</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">=</span> <span class="n">250</span> <span class="k3">+</span> stdoffset<span class="k2">;</span>            
<span class="number">  19</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">=</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">+</span> <span class="n">188</span><span class="k2">;</span>    
<span class="number">  20</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">=</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">+</span> <span class="n">23</span><span class="k2">;</span>      
<span class="number">  21</span>  <span class="k2">}</span>
<span class="number">  22</span>
<span class="number">  23</span>  <span class="k1">int</span> r <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number">  24</span>  <span class="k1">int</span> g <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number">  25</span>  <span class="k1">int</span> b <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>  
<span class="number">  26</span>
<span class="number">  27</span>  <span class="k1">while</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_858.html" target="_blank">wait</a><span class="k2">)</span>
<span class="number">  28</span>  <span class="k2">{</span>
<span class="number">  29</span>    <span class="c">//realevent = al_get_next_event(event_queue, &amp;ev);    </span>
<span class="number">  30</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>
<span class="number">  32</span>    <a href="http://www.allegro.cc/manual/al_get_mouse_state"><span class="a">al_get_mouse_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>state<span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span>    <span class="k1">int</span> x <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_mouse_state_axis"><span class="a">al_get_mouse_state_axis</span></a><span class="k2">(</span><span class="k3">&amp;</span>state, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  34</span>    <span class="k1">int</span> y <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_mouse_state_axis"><span class="a">al_get_mouse_state_axis</span></a><span class="k2">(</span><span class="k3">&amp;</span>state, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  35</span>    <span class="k1">int</span> z <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_mouse_state_axis"><span class="a">al_get_mouse_state_axis</span></a><span class="k2">(</span><span class="k3">&amp;</span>state, <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span>
<span class="number">  37</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">  38</span>
<span class="number">  39</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>
<span class="number">  40</span>    <span class="k2">{</span>
<span class="number">  41</span>      <span class="k1">if</span><span class="k2">(</span>pos <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  42</span>        displaymode <span class="k3">=</span> <span class="s">"Full Screen"</span><span class="k2">;</span>
<span class="number">  43</span>      <span class="k1">if</span><span class="k2">(</span>pos <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  44</span>        displaymode <span class="k3">=</span> <span class="s">"Windowed Normal"</span><span class="k2">;</span>
<span class="number">  45</span>      <span class="k1">if</span><span class="k2">(</span>pos <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number">  46</span>        displaymode <span class="k3">=</span> <span class="s">"Windowed Resizeable"</span><span class="k2">;</span>
<span class="number">  47</span>
<span class="number">  48</span>      <span class="k1">if</span><span class="k2">(</span>x <span class="k3">&gt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">&amp;</span><span class="k3">&amp;</span> x <span class="k3">&lt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">&amp;</span><span class="k3">&amp;</span> y <span class="k3">&gt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">&amp;</span><span class="k3">&amp;</span> y <span class="k3">&lt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy<span class="k2">)</span>  <span class="c">// Collision Check For Mode Buttons</span>
<span class="number">  49</span>      <span class="k2">{</span>
<span class="number">  50</span>        r <span class="k3">=</span> <span class="n">120</span><span class="k2">;</span>
<span class="number">  51</span>        g <span class="k3">=</span> <span class="n">120</span><span class="k2">;</span>
<span class="number">  52</span>        b <span class="k3">=</span> <span class="n">120</span><span class="k2">;</span>
<span class="number">  53</span>
<span class="number">  54</span>        <span class="k1">if</span><span class="k2">(</span>realevent<span class="k2">)</span>
<span class="number">  55</span>          <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>          
<span class="number">  56</span>            <span class="k1">if</span><span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  57</span>            <span class="k2">{</span>
<span class="number">  58</span>              DestroyBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  59</span>              DestroyFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>
<span class="number">  61</span>              <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// This Might Destroy Bitmaps And Fonts Anyway But Still Destroy Them Independently Just To Make Sure As Immediately Above          </span>
<span class="number">  62</span>
<span class="number">  63</span>              <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY_MODE"><span class="a">ALLEGRO_DISPLAY_MODE</span></a> disp_data<span class="k2">;</span>
<span class="number">  64</span>              <a href="http://www.allegro.cc/manual/al_get_display_mode"><span class="a">al_get_display_mode</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_num_display_modes"><span class="a">al_get_num_display_modes</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span>, <span class="k3">&amp;</span>disp_data<span class="k2">)</span><span class="k2">;</span>
<span class="number">  65</span>              <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_FULLSCREEN<span class="k2">)</span><span class="k2">;</span>
<span class="number">  66</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>disp_data.width, disp_data.height<span class="k2">)</span><span class="k2">;</span>              
<span class="number">  67</span>
<span class="number">  68</span>              fsx <span class="k3">=</span> <span class="k2">(</span>disp_data.width <span class="k3">-</span> WIDTH<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  69</span>              fsy <span class="k3">=</span> <span class="k2">(</span>disp_data.height <span class="k3">-</span> HEIGHT<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>          
<span class="number">  70</span>
<span class="number">  71</span>              LoadBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  72</span>              LoadFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>
<span class="number">  74</span>              <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>  <span class="c">// Move Buttons To The Right For Full Screen Mode</span>
<span class="number">  75</span>              <span class="k2">{</span>
<span class="number">  76</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">+</span><span class="k3">=</span> fsx<span class="k2">;</span>      <span class="c">// Because fsx And fsy Are Used To Set Actual Button Postions Just Here This Means    </span>
<span class="number">  77</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">+</span><span class="k3">=</span> fsy<span class="k2">;</span>        <span class="c">// al_get_mouse_state_axis() And The al_draw Functions For The Buttons! Dont Need To    </span>
<span class="number">  78</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">+</span><span class="k3">=</span> fsx<span class="k2">;</span>  <span class="c">// Use fsx And fsy !!!  </span>
<span class="number">  79</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">+</span><span class="k3">=</span> fsy<span class="k2">;</span>
<span class="number">  80</span>              <span class="k2">}</span>
<span class="number">  81</span>            <span class="k2">}</span>
<span class="number">  82</span>
<span class="number">  83</span>            <span class="k1">if</span><span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  84</span>            <span class="k2">{</span>
<span class="number">  85</span>              DestroyBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>              DestroyFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>
<span class="number">  88</span>              <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// This Might Destroy Bitmaps And Fonts Anyway But Still Destroy Them Independently Just To Make Sure As Immediately Above          </span>
<span class="number">  89</span>
<span class="number">  90</span>              <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number">  91</span>              
<span class="number">  92</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>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>          
<span class="number">  93</span>
<span class="number">  94</span>              LoadBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>              LoadFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>
<span class="number">  97</span>              <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>  <span class="c">// Move Buttons Back To The Left For Windowed Mode</span>
<span class="number">  98</span>              <span class="k2">{</span>
<span class="number">  99</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>        
<span class="number"> 100</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>            
<span class="number"> 101</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>     
<span class="number"> 102</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>
<span class="number"> 103</span>              <span class="k2">}</span>
<span class="number"> 104</span>
<span class="number"> 105</span>              fsx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 106</span>              fsy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 107</span>            <span class="k2">}</span>
<span class="number"> 108</span>
<span class="number"> 109</span>            <span class="k1">if</span><span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 110</span>            <span class="k2">{</span>
<span class="number"> 111</span>              DestroyBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>              DestroyFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 113</span>
<span class="number"> 114</span>              <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// This Might Destroy Bitmaps And Fonts Anyway But Still Destroy Them Independently Just To Make Sure As Immediately Above          </span>
<span class="number"> 115</span>
<span class="number"> 116</span>              <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_RESIZABLE<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span>              
<span class="number"> 118</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>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>              
<span class="number"> 119</span>
<span class="number"> 120</span>              LoadBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>              LoadFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 122</span>
<span class="number"> 123</span>              <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>  <span class="c">// Move Buttons Back To The Left For Windowed Mode</span>
<span class="number"> 124</span>              <span class="k2">{</span>
<span class="number"> 125</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>        
<span class="number"> 126</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>            
<span class="number"> 127</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>     
<span class="number"> 128</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>
<span class="number"> 129</span>              <span class="k2">}</span>
<span class="number"> 130</span>
<span class="number"> 131</span>              fsx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 132</span>              fsy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 133</span>            <span class="k2">}</span>
<span class="number"> 134</span>
<span class="number"> 135</span>            <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_RESIZE<span class="k2">)</span>
<span class="number"> 136</span>            <span class="k2">{</span>
<span class="number"> 137</span>               <a href="http://www.allegro.cc/manual/al_acknowledge_resize"><span class="a">al_acknowledge_resize</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>            <span class="k2">}</span>
<span class="number"> 139</span>      <span class="k2">}</span>
<span class="number"> 140</span>
<span class="number"> 141</span>      <span class="k1">else</span>
<span class="number"> 142</span>      <span class="k2">{</span>
<span class="number"> 143</span>        r <span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number"> 144</span>        g <span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number"> 145</span>        b <span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>            
<span class="number"> 146</span>      <span class="k2">}</span>      
<span class="number"> 147</span>      
<span class="number"> 148</span>      <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>mode<span class="k2">[</span>pos<span class="k2">]</span>.x, mode<span class="k2">[</span>pos<span class="k2">]</span>.y, mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx, mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span>r, g, b<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 149</span>      <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font18, <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">130</span>, <span class="n">190</span>, <span class="n">130</span><span class="k2">)</span>, mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">+</span> <span class="n">3</span>, mode<span class="k2">[</span>pos<span class="k2">]</span>.y, <span class="n">0</span>, displaymode.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>      
<span class="number"> 150</span>    <span class="k2">}</span>    
<span class="number"> 151</span>
<span class="number"> 152</span>    <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font30, <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">200</span>, <span class="n">255</span><span class="k2">)</span>, WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> fsx, <span class="n">350</span> <span class="k3">+</span> fsy, ALLEGRO_ALIGN_CENTRE, <span class="s">"Press 'M' To Begin Munching Or Press Space To Create A Maze"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 153</span>
<span class="number"> 154</span>    <span class="c">/*ALLEGRO_DISPLAY_MODE options;</span>
<span class="number"> 155</span><span class="c">    int number = al_get_num_display_modes();</span>
<span class="number"> 156</span><span class="c">    for(int count = 0, int space = 0; count &lt; number; ++count, space += 30)</span>
<span class="number"> 157</span><span class="c">    {</span>
<span class="number"> 158</span><span class="c">      al_get_display_mode(count, &amp;options);</span>
<span class="number"> 159</span><span class="c">      al_draw_textf(font40, al_map_rgb(0, 200, 255), WIDTH / 2 + fsx, 100 + space + fsy, ALLEGRO_ALIGN_CENTRE, "Width %i   Height %i", options.width(), options.height());    </span>
<span class="number"> 160</span><span class="c">    }*/</span>    
<span class="number"> 161</span>
<span class="number"> 162</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"> 163</span>
<span class="number"> 164</span>    <span class="c">/*if(ev.type == ALLEGRO_EVENT_DISPLAY_RESIZE)</span>
<span class="number"> 165</span><span class="c">    {</span>
<span class="number"> 166</span><span class="c">      al_acknowledge_resize(display);</span>
<span class="number"> 167</span><span class="c">    }*/</span>    
<span class="number"> 168</span>
<span class="number"> 169</span>    <span class="k1">if</span><span class="k2">(</span>realevent<span class="k2">)</span>                                      
<span class="number"> 170</span>      <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 171</span>      <span class="k2">{</span>
<span class="number"> 172</span>        <span class="k1">if</span><span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_M<span class="k2">)</span>
<span class="number"> 173</span>        <span class="k2">{</span>
<span class="number"> 174</span>          <a href="http://www.delorie.com/djgpp/doc/libc/libc_858.html" target="_blank">wait</a> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>          
<span class="number"> 175</span>        <span class="k2">}</span>
<span class="number"> 176</span>
<span class="number"> 177</span>        <span class="k1">if</span><span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_SPACE<span class="k2">)</span>
<span class="number"> 178</span>        <span class="k2">{</span>
<span class="number"> 179</span>          BonusLevel<span class="k2">(</span>isplaying<span class="k2">)</span><span class="k2">;</span>          
<span class="number"> 180</span>        <span class="k2">}</span>
<span class="number"> 181</span>      <span class="k2">}</span>
<span class="number"> 182</span>  <span class="k2">}</span>
<span class="number"> 183</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Mon, 27 Oct 2014 23:57:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>When you resize to half the size, it should look like when closing one eye; objects should be same size/position, just you do not see as much of them as you decrease the size.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 28 Oct 2014 00:34:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t know why but that tickled me quite a lot <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /> another beer or two and I&#39;ll be cross eyed.</p><p>Seriously apart from the mouse collision detection problem, ALLEGRO_RESIZABLE works really great and I think it&#39;s a really cool feature. I can play my game perfectly, literally any size down to a large postage stamp size.</p><p>It&#39;s only on screens where the mouse is used to select objects that the issue arises. I could perhaps disable ALLEGRO_RESIZABLE for those screens, but I was hoping for a more complete solution.</p><p><b>EDIT:</b> I&#39;ll upload a very short video clip when I get back from work in about 8 to 9 hours from now, showing how the game works perfectly in resizable mode apart from the mouse collision detection on certain screens.</p><p><b>Again thank you very much for all your support</b> <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p><b>EDIT: 2</b></p><p>Here&#39;s My Video Link: <a href="http://www.youtube.com/watch?v=Xhh4MTe-Q9A&amp;list=UU2XSIT3tAf_-7ilWHAaiocA">http://www.youtube.com/watch?v=Xhh4MTe-Q9A&amp;list=UU2XSIT3tAf_-7ilWHAaiocA</a></p><p><b>Video Link Description:</b> Mouse pointer collision detection misalignment which is not all that surprising, but is there a way to obtain the changing windows width and height to feed into my program so I can compensate.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Tue, 28 Oct 2014 00:59:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/614754/1006514#target">GaryT </a> said:</div><div class="quote"><p> Video Link Description: Mouse pointer collision detection misalignment which is not all that surprising, but is there a way to obtain the changing windows width and height to feed into my program so I can compensate. </p></div></div><p>When you acknowledge the resize event, the <span class="source-code">al_get_display_<span class="k3">*</span></span> functions should return the actual size of the backbuffer if I am not mistaken, and jmasterx seems to confirm this (and he is a much more trustable source <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />)</p><p>I guess you should use that to transfom mouse input accordingly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Wed, 29 Oct 2014 14:02:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Excellent I understand now.</p><p>I&#39;ll give it a test later when I get back from work in about 7 to 8 hours.</p><p>Thanks again pkrcel <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p><b>My apologies everyone for misunderstanding before.</b> <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /></p><p>If the following is true then that&#39;s exactly what I&#39;ve been looking for:</p><div class="quote_container"><div class="title"><a href="http://">pkrcel</a> said:</div><div class="quote"><p>When you acknowledge the resize event, the al_get_display_* functions should return the actual size of the backbuffer if I am not mistaken</p></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Wed, 29 Oct 2014 14:28:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>IIRC, Edgar Reynaldo had a system where the button coordinates were a percentage of the screen dimensions.</p><p>And you&#39;ll get to do it all over again if you switch to OpenGL.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Wed, 29 Oct 2014 14:30:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/614754/1006584#target">GaryT </a> said:</div><div class="quote"><p> If the following is true then that&#39;s exactly what I&#39;ve been looking for:</p></div></div><p>That IS definitely true, I&#39;ve played around <tt>ex_resize2.exe</tt> in the allegro examples and if you <b>fail</b> to acknowledge the resize event (commenting the proper code) you see the picture that gets resized (automagically transformed) proportionally.</p><p>Althou this means that I see in your video means you&#39;re NOT acknowledging the resize.</p><p>Which <b>could be what you were looking for</b>, if you don not want to clip the graphics but would like to have the screen automatically re-proportioned.</p><p>In that case, you WILL have to transform the mouse input, but to get the resized coordinates you have to look in the EVENT struct fields, namely:
</p><div class="source-code snippet"><div class="inner"><pre> event.display.x 
 event.display.y 
 event.display.width
 event.display.height
</pre></div></div><p>

when handling the resize event.</p><p>Which should yield the information you need to transform your mouse input accordingly.</p><p>I know, I&#39;m a bit confused in my exposition....hope this anyway helps.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Wed, 29 Oct 2014 14:50:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah, your video shows that the display is not being acknowledged. I&#39;m not sure why since you are indeed acknowledging it. </p><p>One thing that is very important. Do you register your display to your event queue? </p><p>Notice how I do it:
</p><div class="source-code snippet"><div class="inner"><pre> <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="c">// Start the event queue to handle keyboard input and our timer</span>
 <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>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> 
<a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>queue, <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_SOURCE"><span class="a">ALLEGRO_EVENT_SOURCE</span></a><span class="k3">*</span><span class="k2">)</span><a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</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>queue, <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_SOURCE"><span class="a">ALLEGRO_EVENT_SOURCE</span></a><span class="k3">*</span><span class="k2">)</span><a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</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>queue, <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_SOURCE"><span class="a">ALLEGRO_EVENT_SOURCE</span></a><span class="k3">*</span><span class="k2">)</span>timer<span class="k2">)</span><span class="k2">;</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>queue, <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_SOURCE"><span class="a">ALLEGRO_EVENT_SOURCE</span></a><span class="k3">*</span><span class="k2">)</span>display<span class="k2">)</span><span class="k2">;</span>
 <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
 <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span> <span class="k2">{</span>
</pre></div></div><p>

If you do not register your display, certain things might not work correctly, and resizing might be one of them.</p><p>You probably will not receive the resize event.</p><p>If you can, print the bool returned by acknowledge resize call to see if it returns true.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Wed, 29 Oct 2014 16:29:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s probably a better idea to use <span class="source-code"><a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a></span> and <span class="source-code"><a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a></span> rather than just casting the pointers, &quot;just in case&quot; of a future change.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Wed, 29 Oct 2014 16:38:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh wow, I never even knew about those functions hahah</p><p>At the time that I wrote the template, I was using 4.9.something and I&#39;m not sure if those API&#39;s had been added yet <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Wed, 29 Oct 2014 16:41:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/614754/1006589#target">jmasterx</a> said:</div><div class="quote"><p>At the time that I wrote the template, I was using 4.9.something and I&#39;m not sure if those API&#39;s had been added yet <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p></div></div><p>You could be right <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Wed, 29 Oct 2014 16:45:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>

</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/614754/1006585#target">Arthur Kalliokoski</a> said:</div><div class="quote"><p>
IIRC, Edgar Reynaldo had a system where the button coordinates were a percentage of the screen dimensions.
</p></div></div><p>

This is basically the gist of the whole thing :
</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="number">  2</span>Rectangle LayoutArea<span class="k2">(</span>Rectangle outer_area , LayoutRectangle layout_area<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  3</span>   <span class="k1">float</span> x <span class="k3">=</span> outer_area.X<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>   <span class="k1">float</span> y <span class="k3">=</span> outer_area.Y<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>   <span class="k1">float</span> w <span class="k3">=</span> outer_area.W<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>   <span class="k1">float</span> h <span class="k3">=</span> outer_area.H<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>   
<span class="number">  8</span>   <span class="c">// apply percentages from layout_area</span>
<span class="number">  9</span>   <span class="k1">float</span> nx <span class="k3">=</span> x <span class="k3">+</span> layout_area.fx<span class="k3">*</span>w<span class="k2">;</span>
<span class="number"> 10</span>   <span class="k1">float</span> ny <span class="k3">=</span> y <span class="k3">+</span> layout_area.fy<span class="k3">*</span>h<span class="k2">;</span>
<span class="number"> 11</span>   <span class="k1">float</span> nw <span class="k3">=</span> w<span class="k3">*</span>layout_area.fw<span class="k2">;</span>
<span class="number"> 12</span>   <span class="k1">float</span> nh <span class="k3">=</span> h<span class="k3">*</span>layout_area.fh<span class="k2">;</span>
<span class="number"> 13</span>   
<span class="number"> 14</span>   <span class="c">// transform to integer boundaries, shrink to prevent overlap</span>
<span class="number"> 15</span>   <span class="k1">int</span> nxpos <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_83.html" target="_blank">ceil</a><span class="k2">(</span>nx<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>   <span class="k1">int</span> nypos <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_83.html" target="_blank">ceil</a><span class="k2">(</span>ny<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>   <span class="k1">int</span> nwid <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_330.html" target="_blank">floor</a><span class="k2">(</span>nw<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>   <span class="k1">int</span> nht <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_330.html" target="_blank">floor</a><span class="k2">(</span>nh<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>   
<span class="number"> 20</span>   <span class="k1">return</span> Rectangle<span class="k2">(</span>nxpos , nypos , nwid , nht<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span><span class="k2">}</span>
</div></div><p>
outer_area is your screen, layout_area is the percentage rectangle, and LayoutArea returns the new rectangle based on the combination of the two.<br />fx,fy,fw,and fh are all floats representing the percentage from 0 to 1.0 (or beyond, but then offscreen) of that dimension&#39;s x or y or w or h.</p><p>Really, you should check to make sure you&#39;re transforming your buttons to the new position properly. All I saw was += fx + ... which is just a translation, and not a scaling.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 29 Oct 2014 20:25:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s all working as it should now I think <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>See video link:<br /> <br /><a href="http://www.youtube.com/watch?v=TjRlW3E-LDw&amp;list=UU2XSIT3tAf_-7ilWHAaiocA">http://www.youtube.com/watch?v=TjRlW3E-LDw&amp;list=UU2XSIT3tAf_-7ilWHAaiocA</a></p><p>Before, I was making the mistake of assuming the instant resizing of the graphics within the window when adjusting the window size via the mouse, to be what al_acknowledge_resize() actually does <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /></p><p>Now I just need to transform the fonts and bitmaps (perhaps all put onto one bitmap first, not quite sure yet) to match the new size as it&#39;s acknowledged. Also I now have the values to compensate for the mouse collision detection.</p><p>Interesting though. I&#39;m left wondering if some people simply use the instant resizing of the graphics as usable for one of their display modes, as after all it does seem to work okay, as seen from my first video, but there&#39;s no values to use for compensating for the mouse issue I&#39;ve was having, as I know all too well. Also I&#39;m suspecting the graphics are only intended as a preview or even abandoned data which just happens to stay in tack enough to form an okay image, although it does seem to break up slightly irregular at points as the widow changes size, but this mostly seems to only distort the text.</p><p><b>Edit 4:</b> My last sentence immediately above starting &quot;Also I&#39;m&quot; is perhaps rubbish, I simply don&#39;t know.</p><p>Anyway I&#39;m pretty sure at last that I&#39;m on the right track <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></p><p>Also here&#39;s my modified routine with several mistakes corrected:</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="k2">{</span>
<span class="number">   2</span>  <span class="k1">bool</span> realevent<span class="k2">;</span>  
<span class="number">   3</span>
<span class="number">   4</span>  <span class="k1">bool</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_858.html" target="_blank">wait</a> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>    
<span class="number">   5</span>  
<span class="number">   6</span>  <span class="k1">bool</span> isplaying <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">   7</span>
<span class="number">   8</span>  string displaymode<span class="k2">;</span>  <span class="c">// Used For Display Name In Buttons</span>
<span class="number">   9</span>
<span class="number">  10</span>  vector<span class="k3">&lt;</span>Buttons&gt; mode<span class="k2">(</span><span class="n">3</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">// Number Of Buttons To Display</span>
<span class="number">  11</span>
<span class="number">  12</span>  <span class="k1">int</span> stdx<span class="k3">=</span> <span class="n">100</span><span class="k2">;</span>  <span class="c">// Amount To Shift Everything Left</span>
<span class="number">  13</span>  <span class="k1">int</span> stdoffset <span class="k3">=</span> <span class="k3">-</span><span class="n">27</span><span class="k2">;</span>  <span class="c">// Vertical Pitch  </span>
<span class="number">  14</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos, stdoffset <span class="k3">+</span><span class="k3">=</span> <span class="n">55</span><span class="k2">)</span>  <span class="c">// Set mode Button Parameters</span>
<span class="number">  15</span>  <span class="k2">{</span>
<span class="number">  16</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">=</span> WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">-</span> stdx<span class="k2">;</span>   
<span class="number">  17</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">=</span> <span class="n">200</span> <span class="k3">+</span> stdoffset<span class="k2">;</span>            
<span class="number">  18</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">=</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">+</span> <span class="n">188</span><span class="k2">;</span>    
<span class="number">  19</span>    mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">=</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">+</span> <span class="n">23</span><span class="k2">;</span>      
<span class="number">  20</span>  <span class="k2">}</span>
<span class="number">  21</span>
<span class="number">  22</span>  <span class="k1">int</span> r <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number">  23</span>  <span class="k1">int</span> g <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number">  24</span>  <span class="k1">int</span> b <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number">  25</span>
<span class="number">  26</span>  <span class="k1">int</span> width_test <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_width"><span class="a">al_get_display_width</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>     <span class="c">// My New Test Variable</span>
<span class="number">  27</span>  <span class="k1">int</span> height_test <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_height"><span class="a">al_get_display_height</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// My New Test Variable  </span>
<span class="number">  28</span>
<span class="number">  29</span>  <span class="k1">while</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_858.html" target="_blank">wait</a><span class="k2">)</span>
<span class="number">  30</span>  <span class="k2">{</span>
<span class="number">  31</span>    realevent <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_next_event"><span class="a">al_get_next_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span>
<span class="number">  33</span>    <span class="k1">if</span><span class="k2">(</span>realevent<span class="k2">)</span>
<span class="number">  34</span>      <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_RESIZE<span class="k2">)</span>  <span class="c">// Start of Acknowledge Resize</span>
<span class="number">  35</span>      <span class="k2">{</span>
<span class="number">  36</span>        <a href="http://www.allegro.cc/manual/al_acknowledge_resize"><span class="a">al_acknowledge_resize</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>        width_test <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_width"><span class="a">al_get_display_width</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>        height_test <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_height"><span class="a">al_get_display_height</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// End of Acknowledge Resize      </span>
<span class="number">  39</span>      <span class="k2">}</span>
<span class="number">  40</span>
<span class="number">  41</span>    <a href="http://www.allegro.cc/manual/al_get_mouse_state"><span class="a">al_get_mouse_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>state<span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span>    <span class="k1">int</span> x <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_mouse_state_axis"><span class="a">al_get_mouse_state_axis</span></a><span class="k2">(</span><span class="k3">&amp;</span>state, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  43</span>    <span class="k1">int</span> y <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_mouse_state_axis"><span class="a">al_get_mouse_state_axis</span></a><span class="k2">(</span><span class="k3">&amp;</span>state, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>    <span class="k1">int</span> z <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_mouse_state_axis"><span class="a">al_get_mouse_state_axis</span></a><span class="k2">(</span><span class="k3">&amp;</span>state, <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  45</span>
<span class="number">  46</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">  47</span>
<span class="number">  48</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>
<span class="number">  49</span>    <span class="k2">{</span>
<span class="number">  50</span>      <span class="k1">if</span><span class="k2">(</span>pos <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  51</span>        displaymode <span class="k3">=</span> <span class="s">"      Full Screen"</span><span class="k2">;</span>
<span class="number">  52</span>      <span class="k1">if</span><span class="k2">(</span>pos <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  53</span>        displaymode <span class="k3">=</span> <span class="s">"  Windowed Normal"</span><span class="k2">;</span>
<span class="number">  54</span>      <span class="k1">if</span><span class="k2">(</span>pos <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number">  55</span>        displaymode <span class="k3">=</span> <span class="s">"Windowed Resizeable"</span><span class="k2">;</span>
<span class="number">  56</span>
<span class="number">  57</span>      <span class="k1">if</span><span class="k2">(</span>x <span class="k3">&gt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">&amp;</span><span class="k3">&amp;</span> x <span class="k3">&lt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">&amp;</span><span class="k3">&amp;</span> y <span class="k3">&gt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">&amp;</span><span class="k3">&amp;</span> y <span class="k3">&lt;</span> mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy<span class="k2">)</span>  <span class="c">// Collision Check For Mode Buttons</span>
<span class="number">  58</span>      <span class="k2">{</span>
<span class="number">  59</span>        r <span class="k3">=</span> <span class="n">120</span><span class="k2">;</span>
<span class="number">  60</span>        g <span class="k3">=</span> <span class="n">120</span><span class="k2">;</span>
<span class="number">  61</span>        b <span class="k3">=</span> <span class="n">120</span><span class="k2">;</span>
<span class="number">  62</span>
<span class="number">  63</span>        <span class="k1">if</span><span class="k2">(</span>realevent<span class="k2">)</span>
<span class="number">  64</span>        <span class="k2">{</span>
<span class="number">  65</span>          <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>
<span class="number">  66</span>          <span class="k2">{</span>
<span class="number">  67</span>            <span class="k1">if</span><span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  68</span>            <span class="k2">{</span>
<span class="number">  69</span>              DestroyBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>              DestroyFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  71</span>
<span class="number">  72</span>              <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// This Might Destroy Bitmaps And Fonts Anyway But Still Destroy Them Independently Just To Make Sure As Immediately Above          </span>
<span class="number">  73</span>
<span class="number">  74</span>              <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY_MODE"><span class="a">ALLEGRO_DISPLAY_MODE</span></a> disp_data<span class="k2">;</span>
<span class="number">  75</span>              <a href="http://www.allegro.cc/manual/al_get_display_mode"><span class="a">al_get_display_mode</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_num_display_modes"><span class="a">al_get_num_display_modes</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span>, <span class="k3">&amp;</span>disp_data<span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>              <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_FULLSCREEN<span class="k2">)</span><span class="k2">;</span>
<span class="number">  77</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>disp_data.width, disp_data.height<span class="k2">)</span><span class="k2">;</span>
<span class="number">  78</span>
<span class="number">  79</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="c">// Re-register Display onto Event Queue</span>
<span class="number">  80</span>
<span class="number">  81</span>              width_test <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_width"><span class="a">al_get_display_width</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>              height_test <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_height"><span class="a">al_get_display_height</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</span>
<span class="number">  84</span>              fsx <span class="k3">=</span> <span class="k2">(</span>disp_data.width <span class="k3">-</span> WIDTH<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  85</span>              fsy <span class="k3">=</span> <span class="k2">(</span>disp_data.height <span class="k3">-</span> HEIGHT<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>          
<span class="number">  86</span>
<span class="number">  87</span>              LoadBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  88</span>              LoadFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>
<span class="number">  90</span>              <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>  <span class="c">// Move Buttons To The Right For Full Screen Mode</span>
<span class="number">  91</span>              <span class="k2">{</span>
<span class="number">  92</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">+</span><span class="k3">=</span> fsx<span class="k2">;</span>      <span class="c">// Because fsx And fsy Are Used To Set Actual Button Postions Just Here This Means    </span>
<span class="number">  93</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">+</span><span class="k3">=</span> fsy<span class="k2">;</span>        <span class="c">// al_get_mouse_state_axis() And The al_draw Functions For The Buttons! Dont Need To    </span>
<span class="number">  94</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">+</span><span class="k3">=</span> fsx<span class="k2">;</span>  <span class="c">// Use fsx And fsy !!!  </span>
<span class="number">  95</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">+</span><span class="k3">=</span> fsy<span class="k2">;</span>
<span class="number">  96</span>              <span class="k2">}</span>
<span class="number">  97</span>            <span class="k2">}</span>
<span class="number">  98</span>
<span class="number">  99</span>            <span class="k1">if</span><span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 100</span>            <span class="k2">{</span>
<span class="number"> 101</span>              DestroyBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 102</span>              DestroyFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 103</span>
<span class="number"> 104</span>              <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// This Might Destroy Bitmaps And Fonts Anyway But Still Destroy Them Independently Just To Make Sure As Immediately Above          </span>
<span class="number"> 105</span>
<span class="number"> 106</span>              <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 107</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>WIDTH, HEIGHT<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/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="c">// Re-register Display onto Event Queue</span>
<span class="number"> 111</span>              
<span class="number"> 112</span>              width_test <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_width"><span class="a">al_get_display_width</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 113</span>              height_test <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_height"><span class="a">al_get_display_height</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 114</span>
<span class="number"> 115</span>              LoadBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>              LoadFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span>
<span class="number"> 118</span>              <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>  <span class="c">// Move Buttons Back To The Left For Windowed Mode</span>
<span class="number"> 119</span>              <span class="k2">{</span>
<span class="number"> 120</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>        
<span class="number"> 121</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>            
<span class="number"> 122</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>     
<span class="number"> 123</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>
<span class="number"> 124</span>              <span class="k2">}</span>
<span class="number"> 125</span>
<span class="number"> 126</span>              fsx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 127</span>              fsy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 128</span>            <span class="k2">}</span>
<span class="number"> 129</span>
<span class="number"> 130</span>            <span class="k1">if</span><span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 131</span>            <span class="k2">{</span>
<span class="number"> 132</span>              DestroyBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>              DestroyFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 134</span>
<span class="number"> 135</span>              <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>  <span class="c">// This Might Destroy Bitmaps And Fonts Anyway But Still Destroy Them Independently Just To Make Sure As Immediately Above          </span>
<span class="number"> 136</span>
<span class="number"> 137</span>              <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_RESIZABLE<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>              
<span class="number"> 139</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>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 140</span>
<span class="number"> 141</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="c">// Re-register Display onto Event Queue</span>
<span class="number"> 142</span>
<span class="number"> 143</span>              LoadBitmaps<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 144</span>              LoadFonts<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 145</span>
<span class="number"> 146</span>              <span class="k1">for</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span> pos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> pos <span class="k3">&lt;</span> mode.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>pos<span class="k2">)</span>  <span class="c">// Move Buttons Back To The Left For Windowed Mode</span>
<span class="number"> 147</span>              <span class="k2">{</span>
<span class="number"> 148</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>        
<span class="number"> 149</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.y <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>            
<span class="number"> 150</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx <span class="k3">-</span><span class="k3">=</span> fsx<span class="k2">;</span>     
<span class="number"> 151</span>                mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy <span class="k3">-</span><span class="k3">=</span> fsy<span class="k2">;</span>
<span class="number"> 152</span>              <span class="k2">}</span>
<span class="number"> 153</span>
<span class="number"> 154</span>              fsx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 155</span>              fsy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  <span class="c">// Reset offSet After Having Moved Buttons Back To The Left Just Above</span>
<span class="number"> 156</span>            <span class="k2">}</span>
<span class="number"> 157</span>          <span class="k2">}</span>          
<span class="number"> 158</span>        <span class="k2">}</span>
<span class="number"> 159</span>      <span class="k2">}</span>
<span class="number"> 160</span>
<span class="number"> 161</span>      <span class="k1">else</span>
<span class="number"> 162</span>      <span class="k2">{</span>
<span class="number"> 163</span>        r <span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number"> 164</span>        g <span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number"> 165</span>        b <span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>            
<span class="number"> 166</span>      <span class="k2">}</span>      
<span class="number"> 167</span>      
<span class="number"> 168</span>      <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>mode<span class="k2">[</span>pos<span class="k2">]</span>.x, mode<span class="k2">[</span>pos<span class="k2">]</span>.y, mode<span class="k2">[</span>pos<span class="k2">]</span>.boundx, mode<span class="k2">[</span>pos<span class="k2">]</span>.boundy, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span>r, g, b<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 169</span>      <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font18, <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">130</span>, <span class="n">190</span>, <span class="n">130</span><span class="k2">)</span>, mode<span class="k2">[</span>pos<span class="k2">]</span>.x <span class="k3">+</span> <span class="n">3</span>, mode<span class="k2">[</span>pos<span class="k2">]</span>.y, <span class="n">0</span>, displaymode.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>      
<span class="number"> 170</span>    <span class="k2">}</span>        
<span class="number"> 171</span>
<span class="number"> 172</span>    <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font30, <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">200</span>, <span class="n">255</span><span class="k2">)</span>, WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> fsx, <span class="n">350</span> <span class="k3">+</span> fsy, ALLEGRO_ALIGN_CENTRE, <span class="s">"Press 'M' To Begin Munching Or Press Space To Create A Maze"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 173</span>
<span class="number"> 174</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>font30, <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">100</span>, <span class="n">200</span>, <span class="n">255</span><span class="k2">)</span>, WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> fsx, <span class="n">100</span> <span class="k3">+</span> fsy, ALLEGRO_ALIGN_CENTRE, <span class="s">"Width %i        Height %i"</span>, width_test, height_test<span class="k2">)</span><span class="k2">;</span>      
<span class="number"> 175</span>
<span class="number"> 176</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"> 177</span>
<span class="number"> 178</span>    <span class="k1">if</span><span class="k2">(</span>realevent<span class="k2">)</span>                                      
<span class="number"> 179</span>      <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 180</span>      <span class="k2">{</span>
<span class="number"> 181</span>        <span class="k1">if</span><span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_M<span class="k2">)</span>
<span class="number"> 182</span>        <span class="k2">{</span>
<span class="number"> 183</span>          <a href="http://www.delorie.com/djgpp/doc/libc/libc_858.html" target="_blank">wait</a> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>          
<span class="number"> 184</span>        <span class="k2">}</span>
<span class="number"> 185</span>
<span class="number"> 186</span>        <span class="k1">if</span><span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_SPACE<span class="k2">)</span>
<span class="number"> 187</span>        <span class="k2">{</span>
<span class="number"> 188</span>          BonusLevel<span class="k2">(</span>isplaying<span class="k2">)</span><span class="k2">;</span>          
<span class="number"> 189</span>        <span class="k2">}</span>
<span class="number"> 190</span>      <span class="k2">}</span>
<span class="number"> 191</span>  <span class="k2">}</span>
<span class="number"> 192</span><span class="k2">}</span>
</div></div><p>

<b>EDIT:</b> Sorry all, I&#39;ve only just spotted it&#39;s now on page two, I&#39;ll get reading your posts <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /> </p><p><b>Edit 2:</b> I&#39;m still reading, but yes you&#39;re absolutely correct jmasterx I was forgetting to re-register the display on the event queue.</p><p><b>Edit 3:</b> pkrcel are you saying my suggestion of using the instant resizing of the display might be a valid option. And if so are you saying by using:</p><p><span class="source-code"><span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_RESIZE<span class="k2">)</span></span></p><p>I could compensate for the mouse pointer position as the window size changes and indeed not bother using:</p><p><span class="source-code"><a href="http://www.allegro.cc/manual/al_acknowledge_resize"><span class="a">al_acknowledge_resize</span></a><span class="k2">(</span>display<span class="k2">)</span></span></p><p>Whether you are or not, I&#39;m still extremely happy because now I understand <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /></p><p><b>More About This:</b> If I store the mouse position values instantly before ALLEGRO_EVENT_DISPLAY_RESIZE starts, and then compare them the instant ALLEGRO_EVENT_DISPLAY_RESIZE stops, then I should have the correct values to compensate for the mouse. Along with the above is this along the lines of what you mean.  </p><p><b>Another Edit:</b> Thanks Edgar and Thomas, I&#39;ve found this which I think could help as well: <a href="https://wiki.allegro.cc/index.php?title=Achieving_Resolution_Independence">https://wiki.allegro.cc/index.php?title=Achieving_Resolution_Independence</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Wed, 29 Oct 2014 23:06:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The main disadvantage of the resolution independence methods you linked is that your game can only run on 1 aspect ratio. If you want your game to run on 4:3,16:9,16:10 aspect ratios etc, then you will have to have black borders or everything will look stretched.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Wed, 29 Oct 2014 23:57:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Up to now I&#39;ve been thinking that either black borders or stretching are the only two possibilities for any method. Are you saying there are more options for certain other methods.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Thu, 30 Oct 2014 00:04:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, the other option involves using layouts / relative size algorithms for your gui, and for the game, you can use transformations such that the character is always the same size, but more land is in view in widescreen and so forth. My game supports just about any common aspect ration because of how I designed it.</p><p>The basic idea of layouts is that you specify constraints for your widgets/components. You put Widgets into containers with these constraints and the algorithm will size and position your Widgets such that they look optimal for the selected width and height.</p><p>Java&#39;s Swing API allows this sort of flexibility. My GUI API and a few other GUI APIs on a.cc support this sort of Layout concept.</p><p>Otherwise, the alternative quick n dirty way is for you to specify when you get a resize event:<br />button1.size = width * 0.2f, 60;<br />button1.location = width / 2, height / 2;</p><p>So basically, when the screen is resized, set the button to the center of the screen, and set its width 20% of the screen width, and its height to a fixed 60 pixels.</p><p>This way at any resolution the button will look correct.</p><p>It&#39;s a lot more work to do it this way but I personally prefer it over a static solution.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Thu, 30 Oct 2014 00:44:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Totally Awesome <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Sounds complicated, and thank you for such a clear explanation. Hopefully one day I&#39;ll be able to do it myself <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Thu, 30 Oct 2014 00:51:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/614754/1006605#target">GaryT </a> said:</div><div class="quote"><p> Before, I was making the mistake of assuming the instant resizing of the graphics within the window when adjusting the window size via the mouse, to be what al_acknowledge_resize() actually does <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /></p></div></div><p>If you run both allegro examples <span class="source-code">ex_resize</span> and <span class="source-code">ex_resize2</span> you might end up thinking that, since both programs resize what&#39;s in the screen automatically; this led me to the initial confusion because clashed with what jamsterx said (and I actually remebered like that as well).</p><p>Upon looking at the code of the examples thou it was clear that&#39;s not the case.</p><p>Dunno, maybe the two examples could be tinkered with.</p><p>moving on...</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p> pkrcel are you saying my suggestion of using the instant resizing of the display might be a valid option</p></div></div><p>Not exactly, because I don&#39;t know what are you aiming for specifically, but in principle if you&#39;re not bothered by the shrinking/stretching you indeed COULD use the automatic gfx adaptation.</p><p>It&#39;s not elegant nor eyecandy thou, you should at least set <b>display constraints</b> that set for a minimum and maximum width/height (see <span class="source-code">al_set_window_constraints</span>), and could even handle the resize event (still without acknowledging) calling <span class="source-code"><a href="http://www.allegro.cc/manual/al_resize_display"><span class="a">al_resize_display</span></a></span> to FORCE a certain aspect ratio.</p><p>At least that&#39;s how it come to mind seeing your video, which admittedly it&#39;s not the optimal way to do it (I dunno if the gfx driver performance would be bothered for example, even thou I guess not).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Thu, 30 Oct 2014 13:26:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks again pkrcel.</p><p>There&#39;s a lot for me to play around with now, and I&#39;m feeling positive <img src="http://www.allegro.cc/forums/smileys/kiss.gif" alt=":-*" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GaryT )</author>
		<pubDate>Thu, 30 Oct 2014 13:50:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Felt obligated to mention this - the way the display looks during a resize is just a temporary way to keep something on the screen that looks remotely appropriate. The mouse and its positions will NOT be affected until you call al_acknowledge_resize or al_resize_display. Then they should work as expected. Allegro does not transform the mouse. It just stretches the display to the intermediate size.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 31 Oct 2014 04:14:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah, that&#39;s the main point in me saying it&#39;s not &quot;elegant&quot;....it&#39;s basically hijacking a side effect.</p><p>But you can transform yourself mouse coordinates if you query the relevant fields in the allegro resize event.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Fri, 31 Oct 2014 12:02:04 +0000</pubDate>
	</item>
</rss>
