<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Eagle0pt8 and Allegro 526x binary release</title>
		<link>http://www.allegro.cc/forums/view/618303</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 06 Jan 2021 23:23:39 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I just made an initial release of my GUI and extension library, Eagle.</p><p>Get it here :<br /><a href="https://github.com/EdgarReynaldo/EagleGUI/releases/tag/v0pt8pt0">https://github.com/EdgarReynaldo/EagleGUI/releases/tag/v0pt8pt0</a></p><p>It&#39;s only version 0pt8 because there&#39;s still a bunch of housekeeping and development I want to do before I make a stable release of version 1.</p><p>On the release page, there is an archive for Eagle 0.8, WIP docs, Allegro 5.2.6+,  and all the dependencies necessary to build with Eagle and Allegro.</p><p>Suggestions for widgets are welcome.</p><p>Read the FAQ for commonly asked questions and answers.</p><p>The best way to learn how to use Eagle is probably by reading the headers, as all the docs are contained within the headers anyway.</p><p>I will start on a tutorial example program to show Eagle&#39;s features. That may be the easiest way to get started.</p><p>Eagle builds on Windows, Linux, and should work on OSX too but I don&#39;t have a machine to test.</p><p>Hope somebody finds my stuff useful.</p><p>Edgar <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" /></p><p>Direct download links if anyone is lazy :<br /><a href="https://github.com/EdgarReynaldo/EagleGUI/releases/download/v0pt8pt0/Eagle0pt8_GCC81_MinGW_W64_i686_posix_dwarf.7z">Eagle0pt8_GCC81_MinGW_W64_i686_posix_dwarf.7z</a><br /><a href="https://github.com/EdgarReynaldo/EagleGUI/releases/download/v0pt8pt0/Eagle0pt8docs.7z">Eagle0pt8docs.7z</a><br /><a href="https://github.com/EdgarReynaldo/EagleGUI/releases/download/v0pt8pt0/Allegro526x_GCC81_MinGW_W64_i686_posix_dwarf.7z">Allegro526x_GCC81_MinGW_W64_i686_posix_dwarf.7z</a><br /><a href="https://github.com/EdgarReynaldo/EagleGUI/releases/download/v0pt8pt0/EagleAndAllegroDeps.7z">EagleAndAllegroDeps.7z</a><br /><a href="https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/threads-posix/dwarf/i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z">mingw-builds/8.1.0/threads-posix/dwarf/i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 12 Dec 2020 04:56:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m on it!</p><p>[Edit]<br />Hi, Edgar.<br />What version of OpenGL does Eagle require?<br />I have a very old Dell Laptop which has OpenGL version &lt; 2, which is the main reason why I can&#39;t use the latest version of Blender and Godot.</p><p>Here&#39;s how the example is looking in my machiene :-<br /><span class="remote-thumbnail"><span class="json">{"name":"612749","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/1\/41a378939e50b1820d7c8aa8677402e7.png","w":1280,"h":720,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/1\/41a378939e50b1820d7c8aa8677402e7"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/4/1/41a378939e50b1820d7c8aa8677402e7-240.jpg" alt="612749" width="240" height="135" /></span></p><p>It has a black background and is nothing like :-<br /><span class="remote-thumbnail"><span class="json">{"name":"612750","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/b\/5b6f80c50ecafa4944c1dfad714007c6.png","w":802,"h":633,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/b\/5b6f80c50ecafa4944c1dfad714007c6"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/5/b/5b6f80c50ecafa4944c1dfad714007c6-240.jpg" alt="612750" width="240" height="189" /></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Doctor Cop)</author>
		<pubDate>Sat, 12 Dec 2020 21:21:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s just a simple test program I was using. It&#39;s not really an example you should go off of. I have yet to write a full example for Eagle.</p><p><b>EDIT</b><br />Also, Eagle works with any version of allegro 5 it was compiled with. Allegro 5 works with any version of OpenGL. It also works with DX and D3D9, just like and because of, allegro.</p><p><b>EDIT2</b><br />There is a small bug in DrawImageFit. It is fixed in git. I will release another set of updated binaries to remedy this. If there are any other bugs you notice I will fix them and re-release.</p><p><b>EDIT3</b><br /><a href="https://github.com/EdgarReynaldo/EagleGUI/releases/tag/0pt8pt1">https://github.com/EdgarReynaldo/EagleGUI/releases/tag/0pt8pt1</a></p><p>The issue is fixed, and new binaries are available in a single monolithic package including eagle, allegro 5, and all its dependencies together in a single file.</p><p><a href="https://github.com/EdgarReynaldo/EagleGUI/releases/download/0pt8pt1/MassiveAttack.7z">https://github.com/EdgarReynaldo/EagleGUI/releases/download/0pt8pt1/MassiveAttack.7z</a></p><p><b>EDIT4</b><br />I&#39;m going to keep editing this post until someone gives me feedback. ;P
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 27 Dec 2020 05:09:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Edgar, I will test Eagle 5 after 2nd of Jan of the following year. I have a lots of work right now and I&#39;m thinking of a way to make a decent playable game in the mean time. I have to work on apology card too, but that&#39;s aside the fact that I don&#39;t have enough time. </p><p>One thing I noticed that the mouse click is off by -100 Y axis. I don&#39;t know why, maybe there&#39;s a problem with the example code, because I have tried both of the examples and in both of them the y axes is messed up.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Doctor Cop)</author>
		<pubDate>Tue, 29 Dec 2020 23:02:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What do you mean the mouse click is off? A certain variable is off? How are you getting the mouse position and the click?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 30 Dec 2020 08:03:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I made a screenshot of the program and counted the distance in pixels between the mouse cursor and the rectangle drawing pointer(click).</p><p><span class="remote-thumbnail"><span class="json">{"name":"612767","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/1\/b\/1baeec9510ace65366613681805f5795.png","w":1280,"h":720,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/1\/b\/1baeec9510ace65366613681805f5795"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/1/b/1baeec9510ace65366613681805f5795-240.jpg" alt="612767" width="240" height="135" /></span></p><p>[Edit] : But, now it shows the difference of 64pixels so IDK how much pixels it&#39;s exactly off.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Doctor Cop)</author>
		<pubDate>Thu, 31 Dec 2020 23:49:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t know what&#39;s wrong with the mouse coordinates in your test run. The program runs fine for me. Left click + drag defines rectangle 1, SHIFT Left click + drag defines rectangle 2.</p><p>The rectangles follow the mouse for me.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 01 Jan 2021 04:24:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><a href="https://youtu.be/wlwN4VHgFTo">https://youtu.be/wlwN4VHgFTo</a></p><p>Hello Edgar, I recorded the mouse click on my system and uploaded it on YouTube.<br />And why is the display height so large for the example? It doesn&#39;t even show the Taskbar.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Doctor Cop)</author>
		<pubDate>Fri, 01 Jan 2021 23:12:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What is your native resolution? Are you on a tablet? I will make them smaller in the future. Those aren&#39;t even supposed to be examples, they were just tests I was running. I don&#39;t know why your mouse is off, but I suspect it is because the window is offscreen.</p><p>Just use the code as an example of how to use the basic system. If you have questions about the code let me know. There&#39;s nothing wrong with the code, it&#39;s something to do with your monitor / os setup here.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 02 Jan 2021 03:13:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre>..<span class="k3">/</span>..<span class="k3">/</span>mingw32<span class="k3">/</span>bin<span class="k3">/</span>g<span class="k3">+</span><span class="k3">+</span> <span class="k3">-</span>I ..<span class="k3">/</span>..<span class="k3">/</span>mingw32<span class="k3">/</span>include<span class="k3">/</span> <span class="k3">-</span>o ..<span class="k3">/</span>main main.cpp ..<span class="k3">/</span>allegro_monolith-5.2.dll ..<span class="k3">/</span>libdumb.dll ..<span class="k3">/</span>libEagleA5Shared.dll  ..<span class="k3">/</span>libEagleShared.dll ..<span class="k3">/</span>libenet.dll ..<span class="k3">/</span>libFLAC<span class="k3">+</span><span class="k3">+</span><span class="k3">-</span><span class="n">6</span>.dll ..<span class="k3">/</span>libFLAC-8.dll ..<span class="k3">/</span>libgcc_s_dw2-1.dll ..<span class="k3">/</span>libgif-7.dll ..<span class="k3">/</span>libjpeg-62.dll ..<span class="k3">/</span>libogg-0.dll ..<span class="k3">/</span>libphysfs.dll ..<span class="k3">/</span>libpng16.dll ..<span class="k3">/</span>libstdc<span class="k3">+</span><span class="k3">+</span><span class="k3">-</span><span class="n">6</span>.dll ..<span class="k3">/</span>libtheora-0.dll ..<span class="k3">/</span>libtheoradec-1.dll ..<span class="k3">/</span>libtheoraenc-1.dll ..<span class="k3">/</span>libtiff.dll ..<span class="k3">/</span>libtiffxx.dll ..<span class="k3">/</span>libturbojpeg.dll ..<span class="k3">/</span>libvorbis-0.dll ..<span class="k3">/</span>libvorbisenc-2.dll ..<span class="k3">/</span>libvorbisfile-3.dll ..<span class="k3">/</span>libwinpthread-1.dll ..<span class="k3">/</span>libzlib.dll ..<span class="k3">/</span>OpenAL32.dll
In file included from ..<span class="k3">/</span>..<span class="k3">/</span>mingw32<span class="k3">/</span>include<span class="k3">/</span>Eagle.hpp:34,
                 from ..<span class="k3">/</span>..<span class="k3">/</span>mingw32<span class="k3">/</span>include<span class="k3">/</span>Eagle<span class="k3">/</span>backends<span class="k3">/</span>Allegro5Backend.hpp:28,
                 from main.cpp:1:
..<span class="k3">/</span>..<span class="k3">/</span>mingw32<span class="k3">/</span>include<span class="k3">/</span>Eagle<span class="k3">/</span>Area.hpp:270:2: warning: #warning Eagle::Rectangle has issues with OpenGL headers <span class="k2">[</span><span class="k3">-</span>Wcpp<span class="k2">]</span>
 <span class="p">#warning Eagle::Rectangle has issues with OpenGL headers</span>
  ^~~~~~~
In file included from ..<span class="k3">/</span>..<span class="k3">/</span>mingw32<span class="k3">/</span>include<span class="k3">/</span>Eagle.hpp:36,
                 from ..<span class="k3">/</span>..<span class="k3">/</span>mingw32<span class="k3">/</span>include<span class="k3">/</span>Eagle<span class="k3">/</span>backends<span class="k3">/</span>Allegro5Backend.hpp:28,
                 from main.cpp:1:
..<span class="k3">/</span>..<span class="k3">/</span>mingw32<span class="k3">/</span>include<span class="k3">/</span>Eagle<span class="k3">/</span>Clipboard.hpp:29:2: warning: #warning TODO <span class="k2">:</span> Support more than local strings... Use my clipboard
library instead. <span class="k2">[</span><span class="k3">-</span>Wcpp<span class="k2">]</span>
 <span class="p">#warning TODO : Support more than local strings... Use my clipboard library instead.</span>
  ^~~~~~~
</pre></div></div><p>

These are the warnings that I get after compiling the Example program.<br />Will update after trying to fix this issue.</p><p>[Edit]
</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>   Allegro5System<span class="k3">*</span> sys <span class="k3">=</span> GetAllegro5System<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_MONITOR_INFO"><span class="a">ALLEGRO_MONITOR_INFO</span></a> monitor<span class="k2">;</span>
<span class="number">  4</span>   <a href="http://www.allegro.cc/manual/al_get_monitor_info"><span class="a">al_get_monitor_info</span></a><span class="k2">(</span><span class="n">0</span>, <span class="k3">&amp;</span>monitor<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>   <span class="k1">int</span> ret <span class="k3">=</span> sys-&gt;Initialize<span class="k2">(</span>EAGLE_FULL_SETUP<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>   <span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>ret<span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span>   EagleGraphicsContext<span class="k3">*</span> win<span class="k2">;</span>
<span class="number"> 10</span>   <span class="k1">if</span> <span class="k2">(</span>monitor.x2 <span class="k3">&lt;</span> <span class="n">768</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> monitor.y2 <span class="k3">&lt;</span> <span class="n">1024</span><span class="k2">)</span>
<span class="number"> 11</span>       win <span class="k3">=</span> sys-&gt;CreateGraphicsContext<span class="k2">(</span><span class="s">"win"</span> , <span class="n">1024</span> , <span class="n">768</span> , EAGLE_OPENGL <span class="k3">|</span> EAGLE_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>   <span class="k1">else</span>
<span class="number"> 13</span>       win <span class="k3">=</span> sys-&gt;CreateGraphicsContext<span class="k2">(</span><span class="s">"win"</span> , <span class="n">800</span> , <span class="n">600</span> , EAGLE_OPENGL <span class="k3">|</span> EAGLE_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>   
<span class="number"> 15</span>   EAGLE_ASSERT<span class="k2">(</span>win <span class="k3">&amp;</span><span class="k3">&amp;</span> win-&gt;Valid<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>   
<span class="number"> 17</span>   win-&gt;Clear<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>   win-&gt;FlipDisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</div></div><p>

[Edit]: The problem is obviously in monitor values, IDK why they are larger than your prefilled display values, even though my display size is smaller.<br />I couldn&#39;t workout the solution, maybe you can, if you know why monitor values are so bizarre then let me know.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Doctor Cop)</author>
		<pubDate>Sat, 02 Jan 2021 22:28:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ignore all the warnings when building Eagle. They&#39;re for development use only. Friendly reminder to get my stuff done.</p><p>You&#39;re using ALLEGRO_MONITOR_INFO incorrectly. x2 and y2 are the bottom right corners of the window, not the width and height.</p><p>I will come up with an example program here in the next week or so. Shouldn&#39;t take long.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 04 Jan 2021 00:55:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre>monitor.x2 <span class="n">1280</span> monitor.y2 <span class="n">720</span>
</pre></div></div><p>
These are the values I got from a program without Eagle 5.</p><p><span class="source-code">monitor.x2 <span class="n">2147483647</span> monitor.y2 <span class="n">2147483647</span></span><br />These are the values I got from a program with Eagle 5 before <span class="source-code">Allegro5System<span class="k3">*</span> sys <span class="k3">=</span> GetAllegro5System<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Doctor Cop)</author>
		<pubDate>Tue, 05 Jan 2021 21:38:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="source-code"><span class="k1">if</span> <span class="k2">(</span>monitor.x2 <span class="k3">&lt;</span> <span class="n">768</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> monitor.y2 <span class="k3">&lt;</span> <span class="n">1024</span><span class="k2">)</span></span></p><p>shouldn&#39;t that be:</p><p><span class="source-code"><span class="k1">if</span> <span class="k2">(</span>monitor.x2 <span class="k3">&lt;</span> <span class="n">1024</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> monitor.y2 <span class="k3">&lt;</span> <span class="n">768</span><span class="k2">)</span></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Wed, 06 Jan 2021 01:20:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No. They&#39;re both wrong. x2 and y2 are the bottom right corner, not the width and height. That&#39;s x2-x1 and y2-y1.</p><p>And of course allegro doesn&#39;t work before you call System::Initialize...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 06 Jan 2021 09:36:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span>   <span class="p">#include &lt;Eagle/backends/Allegro5Backend.hpp&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;Eagle.hpp&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro5/allegro_color.h&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">   5</span>
<span class="number">   6</span><span class="k1">int</span> round_by_highest<span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   7</span>
<span class="number">   8</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><span class="k3">*</span> argv<span class="k2">)</span> <span class="k2">{</span>
<span class="number">   9</span>   <span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>argc<span class="k2">;</span>
<span class="number">  10</span>   <span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>argv<span class="k2">;</span>
<span class="number">  11</span>   
<span class="number">  12</span>   Allegro5System<span class="k3">*</span> sys <span class="k3">=</span> GetAllegro5System<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  13</span>
<span class="number">  14</span>   <span class="k1">int</span> ret <span class="k3">=</span> sys-&gt;Initialize<span class="k2">(</span>EAGLE_FULL_SETUP<span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span>   <span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>ret<span class="k2">;</span>
<span class="number">  16</span>
<span class="number">  17</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_MONITOR_INFO"><span class="a">ALLEGRO_MONITOR_INFO</span></a> monitor<span class="k2">;</span>
<span class="number">  18</span>   <a href="http://www.allegro.cc/manual/al_get_monitor_info"><span class="a">al_get_monitor_info</span></a><span class="k2">(</span><span class="n">0</span>, <span class="k3">&amp;</span>monitor<span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span>   <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"\nmonitor.x2 %d\tmonitor.y2 %d\n"</span>, monitor.x2, monitor.y2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  20</span>
<span class="number">  21</span>   EagleGraphicsContext<span class="k3">*</span> win<span class="k2">;</span>
<span class="number">  22</span>   <span class="k1">if</span> <span class="k2">(</span>monitor.x2 <span class="k3">&lt;</span> <span class="n">1024</span> <span class="k3">|</span><span class="k3">|</span> monitor.y2 <span class="k3">&lt;</span> <span class="n">768</span><span class="k2">)</span>
<span class="number">  23</span>       win <span class="k3">=</span> sys-&gt;CreateGraphicsContext<span class="k2">(</span><span class="s">"win"</span> , 
<span class="number">  24</span>            round_by_highest<span class="k2">(</span>monitor.x2<span class="k2">)</span>, 
<span class="number">  25</span>            round_by_highest<span class="k2">(</span>monitor.y2<span class="k2">)</span>, 
<span class="number">  26</span>            EAGLE_OPENGL <span class="k3">|</span> EAGLE_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number">  27</span>   <span class="k1">else</span>
<span class="number">  28</span>       win <span class="k3">=</span> sys-&gt;CreateGraphicsContext<span class="k2">(</span><span class="s">"win"</span> , <span class="n">1024</span> , <span class="n">768</span> , EAGLE_OPENGL <span class="k3">|</span> EAGLE_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number">  29</span>   
<span class="number">  30</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"\n%d %d"</span>, round_by_highest<span class="k2">(</span>monitor.x2<span class="k2">)</span>, round_by_highest<span class="k2">(</span>monitor.y2<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>
<span class="number">  32</span>   EAGLE_ASSERT<span class="k2">(</span>win <span class="k3">&amp;</span><span class="k3">&amp;</span> win-&gt;Valid<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span>   
<span class="number">  34</span>   win-&gt;Clear<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  35</span>   win-&gt;FlipDisplay<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">bool</span> quit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  38</span>   <span class="k1">bool</span> redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  39</span>   <span class="k1">int</span> mx <span class="k3">=</span> <span class="n">0</span> , sx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  40</span>   <span class="k1">int</span> my <span class="k3">=</span> <span class="n">0</span> , sy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  41</span>   <span class="k1">bool</span> drag <span class="k3">=</span> <span class="k1">false</span> , shiftdrag <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  42</span>   <span class="k1">int</span> x1<span class="k3">=</span><span class="n">0</span>,x2<span class="k3">=</span><span class="n">0</span>,x3<span class="k3">=</span><span class="n">0</span>,x4<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number">  43</span>   <span class="k1">int</span> y1<span class="k3">=</span><span class="n">0</span>,y2<span class="k3">=</span><span class="n">0</span>,y3<span class="k3">=</span><span class="n">0</span>,y4<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number">  44</span>   
<span class="number">  45</span>   sys-&gt;GetSystemTimer<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>Start<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>   
<span class="number">  47</span>   <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>quit<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  48</span>      <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  49</span>         Rectangle r1,r2<span class="k2">;</span>
<span class="number">  50</span>         r1.SetCorners<span class="k2">(</span>x1,y1,x2,y2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  51</span>         r2.SetCorners<span class="k2">(</span>x3,y3,x4,y4<span class="k2">)</span><span class="k2">;</span>
<span class="number">  52</span>         std::list<span class="k3">&lt;</span>Rectangle&gt; left <span class="k3">=</span> SubtractRectangle<span class="k2">(</span>r2,r1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>         
<span class="number">  54</span>         win-&gt;Clear<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  55</span>         win-&gt;DrawFilledRectangle<span class="k2">(</span>r1 , EagleColor<span class="k2">(</span><span class="n">0</span>,<span class="n">255</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  56</span>         win-&gt;DrawFilledRectangle<span class="k2">(</span>r2 , EagleColor<span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</span>         <span class="k1">float</span> h <span class="k3">=</span> <span class="n">30</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  58</span>         <span class="k1">float</span> s <span class="k3">=</span> <span class="n">1</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  59</span>         <span class="k1">float</span> l <span class="k3">=</span> <span class="n">0</span>.<span class="n">5</span><span class="k2">;</span>
<span class="number">  60</span>         <span class="k1">for</span> <span class="k2">(</span>std::list<span class="k3">&lt;</span>Rectangle&gt;::iterator it <span class="k3">=</span> left.begin<span class="k2">(</span><span class="k2">)</span> <span class="k2">;</span> it <span class="k3">!</span><span class="k3">=</span> left.end<span class="k2">(</span><span class="k2">)</span> <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>it<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  61</span>            <span class="k1">float</span> r,g,b<span class="k2">;</span>
<span class="number">  62</span>            <a href="http://www.allegro.cc/manual/al_color_hsl_to_rgb"><span class="a">al_color_hsl_to_rgb</span></a><span class="k2">(</span>h,s,l,<span class="k3">&amp;</span>r,<span class="k3">&amp;</span>g,<span class="k3">&amp;</span>b<span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>            win-&gt;DrawFilledRectangle<span class="k2">(</span><span class="k3">*</span>it , EagleColor<span class="k2">(</span>r,g,b<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>            
<span class="number">  65</span>            h <span class="k3">+</span><span class="k3">=</span> <span class="n">30</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  66</span>         <span class="k2">}</span>
<span class="number">  67</span>         win-&gt;FlipDisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  68</span>         redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  69</span>      <span class="k2">}</span>
<span class="number">  70</span>      <span class="k1">do</span> <span class="k2">{</span>
<span class="number">  71</span>         EagleEvent e <span class="k3">=</span> sys-&gt;WaitForSystemEventAndUpdateState<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  72</span>         <span class="k1">if</span> <span class="k2">(</span>e.type <span class="k3">=</span><span class="k3">=</span> EAGLE_EVENT_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  73</span>            redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  74</span>         <span class="k2">}</span>
<span class="number">  75</span>         <span class="k1">if</span> <span class="k2">(</span>e.type <span class="k3">=</span><span class="k3">=</span> EAGLE_EVENT_DISPLAY_CLOSE<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  76</span>            quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  77</span>         <span class="k2">}</span>
<span class="number">  78</span>         <span class="k1">if</span> <span class="k2">(</span>e.type <span class="k3">=</span><span class="k3">=</span> EAGLE_EVENT_KEY_DOWN <span class="k3">&amp;</span><span class="k3">&amp;</span> e.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> EAGLE_KEY_ESCAPE<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  79</span>            quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  80</span>         <span class="k2">}</span>
<span class="number">  81</span>         <span class="k1">if</span> <span class="k2">(</span>e.type <span class="k3">=</span><span class="k3">=</span> EAGLE_EVENT_MOUSE_AXES<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  82</span>            mx <span class="k3">=</span> e.mouse.x<span class="k2">;</span>
<span class="number">  83</span>            my <span class="k3">=</span> e.mouse.y<span class="k2">;</span>
<span class="number">  84</span>            <span class="k1">if</span> <span class="k2">(</span>drag<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  85</span>               x1 <span class="k3">=</span> mx<span class="k2">;</span>
<span class="number">  86</span>               y1 <span class="k3">=</span> my<span class="k2">;</span>
<span class="number">  87</span>            <span class="k2">}</span>
<span class="number">  88</span>            <span class="k1">if</span> <span class="k2">(</span>shiftdrag<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  89</span>               x3 <span class="k3">=</span> mx<span class="k2">;</span>
<span class="number">  90</span>               y3 <span class="k3">=</span> my<span class="k2">;</span>
<span class="number">  91</span>            <span class="k2">}</span>
<span class="number">  92</span>         <span class="k2">}</span>
<span class="number">  93</span>         <span class="k1">if</span> <span class="k2">(</span>e.type <span class="k3">=</span><span class="k3">=</span> EAGLE_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  94</span>            sx <span class="k3">=</span> e.mouse.x<span class="k2">;</span>
<span class="number">  95</span>            sy <span class="k3">=</span> e.mouse.y<span class="k2">;</span>
<span class="number">  96</span>            <span class="k1">if</span> <span class="k2">(</span>input_key_held<span class="k2">(</span>EAGLE_KEY_ANY_SHIFT<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  97</span>               shiftdrag <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  98</span>               x3 <span class="k3">=</span> x4 <span class="k3">=</span> sx<span class="k2">;</span>
<span class="number">  99</span>               y3 <span class="k3">=</span> y4 <span class="k3">=</span> sy<span class="k2">;</span>
<span class="number"> 100</span>            <span class="k2">}</span>
<span class="number"> 101</span>            <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 102</span>               drag <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 103</span>               x1 <span class="k3">=</span> x2 <span class="k3">=</span> sx<span class="k2">;</span>
<span class="number"> 104</span>               y1 <span class="k3">=</span> y2 <span class="k3">=</span> sy<span class="k2">;</span>
<span class="number"> 105</span>            <span class="k2">}</span>
<span class="number"> 106</span>         <span class="k2">}</span>
<span class="number"> 107</span>         <span class="k1">if</span> <span class="k2">(</span>e.type <span class="k3">=</span><span class="k3">=</span> EAGLE_EVENT_MOUSE_BUTTON_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 108</span>            drag <span class="k3">=</span> shiftdrag <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 109</span>         <span class="k2">}</span>
<span class="number"> 110</span>      <span class="k2">}</span> <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>sys-&gt;UpToDate<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</span>         
<span class="number"> 112</span>   <span class="k2">}</span>
<span class="number"> 113</span>   
<span class="number"> 114</span>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 115</span><span class="k2">}</span>
<span class="number"> 116</span>
<span class="number"> 117</span><span class="k1">int</span> round_by_highest<span class="k2">(</span><span class="k1">int</span> num<span class="k2">)</span> 
<span class="number"> 118</span><span class="k2">{</span>
<span class="number"> 119</span>    <span class="k1">int</span> round_no<span class="k3">=</span><span class="n">1</span>, temp<span class="k2">;</span>
<span class="number"> 120</span>    <span class="k1">while</span><span class="k2">(</span>num <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 121</span>        temp <span class="k3">=</span> num%<span class="n">10</span><span class="k2">;</span>
<span class="number"> 122</span>        round_no<span class="k3">*</span><span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 123</span>        num<span class="k3">/</span><span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 124</span>    <span class="k2">}</span> round_no<span class="k3">*</span><span class="k3">=</span>temp<span class="k2">;</span>
<span class="number"> 125</span>    <span class="k1">return</span> round_no<span class="k3">/</span><span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 126</span><span class="k2">}</span>
</div></div><p>

I did a stupid thing here, guess what!?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Doctor Cop)</author>
		<pubDate>Wed, 06 Jan 2021 23:23:39 +0000</pubDate>
	</item>
</rss>
