<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>How do I completely skip Mouse Axes events?</title>
		<link>http://www.allegro.cc/forums/view/618330</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 07 Jan 2021 04:23:33 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m making a circuit simulator, but I&#39;m running into an issue with oscillator inconsistency. When the mouse is left alone, the oscillator is fairly stable, but when moving the mouse, Allegro starts pushing a bunch of Mouse Axes events into the event queue and causing the &quot;speed&quot; of the simulation to go way up. </p><p>This seems to completely destabilize the sim (for reasons beyond my understanding). Thus I tried skipping mouse axes events via:
</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>skip:
<span class="number"> 2</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"> 3</span>
<span class="number"> 4</span><span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 5</span>   <span class="k1">goto</span> skip<span class="k2">;</span>
<span class="number"> 6</span><span class="k2">}</span>
</div></div><p>
Checking for mouse axes events in the while loop did show that none were getting through, but the simulation was still speeding up. Anyone know why?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AleaInfinitus)</author>
		<pubDate>Wed, 06 Jan 2021 04:39:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You should get the events as fast as possible and base your logic / drawing loops on timer events, not on mouse events.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Wed, 06 Jan 2021 15:25:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here is a basic loop :</p><div class="source-code snippet"><div class="inner"><pre>   <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>quit<span class="k2">)</span> <span class="k2">{</span>
      <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
         <span class="c">//...</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>
         redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
      <span class="k2">}</span>
      <span class="k1">do</span> <span class="k2">{</span>
         <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</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>ev<span class="k2">)</span><span class="k2">;</span>
         <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> EAGLE_EVENT_MOUSE_AXES<span class="k2">)</span> <span class="k2">{</span><span class="k1">continue</span><span class="k2">;</span><span class="k2">}</span>
      <span class="k2">}</span> <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>queue<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
   <span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 06 Jan 2021 17:13:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My current loop layout looks 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">while</span><span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  2</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">  3</span>
<span class="number">  4</span>  <span class="k1">switch</span><span class="k2">(</span>event.type<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  5</span>    <span class="c">//buttons, clicks, etc.</span>
<span class="number">  6</span>  <span class="k2">}</span>
<span class="number">  7</span>
<span class="number">  8</span>  sim_logic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span>  <span class="k1">if</span><span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 11</span>   <span class="c">//rendering</span>
<span class="number"> 12</span>  <span class="k2">}</span>
</div></div><p>

My sim logic is outside of the event switch, so I don&#39;t really know how else to make it rely on the timer exclusively, but I&#39;ll try Edgar&#39;s design.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AleaInfinitus)</author>
		<pubDate>Thu, 07 Jan 2021 02:53:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Put your sim logic in the switch case, under the timer event case...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Thu, 07 Jan 2021 03:24:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Anyone works, you just take the event and ignore it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (RmBeer2)</author>
		<pubDate>Thu, 07 Jan 2021 04:23:33 +0000</pubDate>
	</item>
</rss>
