<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>How to detect the currrent system resolution?</title>
		<link>http://www.allegro.cc/forums/view/617640</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 03 Dec 2018 04:09:30 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve made a change to my system and it appears that a function I was using incorrectly has now made it known I&#39;m using it wrong.</p><p>I need to gather what the resolution that my screen is running at, and if it&#39;s smaller than 1280x800 to create a smaller window. Here is the code I used.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>    <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED <span class="k3">|</span> ALLEGRO_RESIZABLE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  2</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><span class="n">0</span>, <span class="k3">&amp;</span>mode<span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span>    DisplayWidth <span class="k3">=</span> mode.width<span class="k2">;</span>
<span class="number">  4</span>    DisplayHeight <span class="k3">=</span> mode.height<span class="k2">;</span>
<span class="number">  5</span>    OffcenterX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  6</span>    OffcenterY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  7</span>    <span class="k1">if</span> <span class="k2">(</span>DisplayWidth <span class="k3">&gt;</span><span class="k3">=</span> GameWidth <span class="k3">&amp;</span><span class="k3">&amp;</span> DisplayHeight <span class="k3">&gt;</span><span class="k3">=</span> GameHeight<span class="k2">)</span>
<span class="number">  8</span>    <span class="k2">{</span>
<span class="number">  9</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>GameWidth, GameHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>    <span class="k2">}</span>
<span class="number"> 11</span>    <span class="k1">else</span>
<span class="number"> 12</span>    <span class="k2">{</span>
<span class="number"> 13</span>      DisplayWidth <span class="k3">=</span> <span class="n">1366</span><span class="k2">;</span>
<span class="number"> 14</span>      DisplayHeight <span class="k3">=</span> <span class="n">768</span><span class="k2">;</span>
<span class="number"> 15</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>DisplayWidth, DisplayHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>      <a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a><span class="k2">(</span>DISPLAY, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>    <span class="k2">}</span>
</div></div><p>

Now I thought that al_get_display_mode(0, &amp;mode); would give me my current desktop resolution. Nope! Turns out I have 40 different resolutions to pick from. (It appears to be all 20 of my available resolutions in landscape and portrait)</p><p>So how do I know which one my desktop is running at before I create the display?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (nshade)</author>
		<pubDate>Thu, 29 Nov 2018 04:59:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This is how I do it:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ALLEGRO_MONITOR_INFO"><span class="a">ALLEGRO_MONITOR_INFO</span></a> info<span class="k2">;</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>info<span class="k2">)</span><span class="k2">;</span>
<a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%i x %i"</span>,info.x2-info.x1,info.y2-info.y1<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Frank Drebin)</author>
		<pubDate>Thu, 29 Nov 2018 12:17:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That will tell you the current resolution, sure, but not the max, or the native one. For that, you have to store the results of your enumeration and then sort them by area, and then by aspect. You can then choose the best option easily.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 03 Dec 2018 04:09:30 +0000</pubDate>
	</item>
</rss>
