<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>A5 Fullscreen Vs Windowed</title>
		<link>http://www.allegro.cc/forums/view/618856</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 22 Sep 2023 01:38:11 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>All,</p><p>Is there a way of switching to full screen other than just making my display 1920,XXX?  In A4 there is WINDOWED and FULLSCREEN. Does A5 have something comparable?</p><p>Thanks</p><p><b>*UPDATE</b>* I tried <br />al_set_display_flag(display, ALLEGRO_FULLSCREEN_WINDOW, !(al_get_display_flags(display) &amp; ALLEGRO_FULLSCREEN_WINDOW));</p><p>but it just makes the program screen bigger.  It doesn&#39;t change the resolution so my game pieces are the same size and to upper left of the screen.  This line was also supposed to allow toggling, (something I&#39;m not looking for yet) but without the title bar, I&#39;m not sure how you are supposed to do that.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Sun, 03 Sep 2023 18:17:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Per the documents, Prefer using ALLEGRO_FULLSCREEN_WINDOW as it typically provides a better user experience as the monitor doesn’t change resolution and switching away from your game via Alt-Tab works smoothly. ALLEGRO_FULLSCREEN is typically less well supported compared to ALLEGRO_FULLSCREEN_WINDOW.</p><p>Otherwise, destroy current display, toggle flag, then make a new display.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Sun, 03 Sep 2023 19:33:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>al_set_display_flag should toggle between ALLEGRO_WINDOWED and ALLEGRO_FULLSCREEN_WINDOW. Can you show me a screenshot of what it does? And yes, it changes the resolution to fit the screen.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 03 Sep 2023 20:39:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>He&#39;s doesn&#39;t want full screen window, but full screen.</p><p>Better to just have your stuff stretch to fill the larger full screen window.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Sun, 03 Sep 2023 22:03:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>In that case, what he said.</p><p>Yeah, don&#39;t change the actual resolution of the monitor. It messes with the desktop on many versions of WinDoze.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 03 Sep 2023 23:08:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry for the delay in getting back to everyone.  </p><p>Here is the init code for the game.</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> a_init<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  init_confirm<span class="k2">(</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="s">"allegro"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>  init_confirm<span class="k2">(</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="s">"keyboard"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>  init_confirm<span class="k2">(</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="s">"mouse"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>  init_confirm<span class="k2">(</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="s">"font_addon"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>  init_confirm<span class="k2">(</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="s">"ttf_addon"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>    init_confirm<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span>, <span class="s">"primitives"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>    init_confirm<span class="k2">(</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="s">"image addon"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span>    titlescr <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Title Screen.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>  init_confirm<span class="k2">(</span>titlescr, <span class="s">"Title Screen"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>
<span class="number"> 14</span>  timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> <span class="n">30</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>  init_confirm<span class="k2">(</span>timer, <span class="s">"timer"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>
<span class="number"> 17</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"> 18</span>    init_confirm<span class="k2">(</span>queue, <span class="s">"queue"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>
<span class="number"> 20</span>    disp <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">560</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>    init_confirm<span class="k2">(</span>disp, <span class="s">"display"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>    al_set_display_flag<span class="k2">(</span>disp, ALLEGRO_FULLSCREEN_WINDOW, <span class="k3">!</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_display_flags"><span class="a">al_get_display_flags</span></a><span class="k2">(</span>disp<span class="k2">)</span> <span class="k3">&amp;</span> ALLEGRO_FULLSCREEN_WINDOW<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// added code for fullscreen</span>
<span class="number"> 23</span>
<span class="number"> 24</span>    <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"PressStart2P.ttf"</span>,<span class="n">24</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>    init_confirm<span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, <span class="s">"font"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>
<span class="number"> 27</span>    err_font <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"PressStart2P.ttf"</span>,<span class="n">18</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>    init_confirm<span class="k2">(</span>err_font, <span class="s">"Error font"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>
<span class="number"> 30</span>    scr_font <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"PressStart2P.ttf"</span>,<span class="n">36</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>     init_confirm<span class="k2">(</span>scr_font, <span class="s">"Screen Font"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>
<span class="number"> 33</span>
<span class="number"> 34</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, <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"> 35</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, <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"> 36</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, <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>disp<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</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, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>
<span class="number"> 39</span><span class="k2">}</span> <span class="c">/* End a_init() */</span>
</div></div><p>

I&#39;ve added the before and after screen shots.  You can see the display size does get bigger but the components of the screen remain the same size. <br />On an A4 game (as I remember) I changed my game from WINDOWED to FULLSCREEN and the writing / images changed with the screen size.  Again, I believe it reset the screen resolution so the 640x480 was full screen or a window on a 1920 x 1200 screen. </p><p>Thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Fri, 08 Sep 2023 01:24:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ALLEGRO_FULLSCREEN_WINDOWED makes your display the size of the screen. It won&#39;t change the size of anything else. As I said earlier, if you want everything else to scale to the larger or smaller sizes, you have to scale them.</p><p>Here is what I like to do:
</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/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display <span class="k3">=</span> nullptr<span class="k2">;</span>
<span class="number">  2</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> buffer <span class="k3">=</span> nullptr<span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">int</span> init<span class="k2">(</span><span class="k2">)</span>
<span class="number">  5</span><span class="k2">{</span>
<span class="number">  6</span>    <span class="c">// init allegro, etc</span>
<span class="number">  7</span>    
<span class="number">  8</span>    <span class="c">// start display windowed and able to be resized</span>
<span class="number">  9</span>    al_set_new_display_flag<span class="k2">(</span>ALLEGRO_WINDOWED <span class="k3">|</span> ALLEGRO_RESIZABLE<span class="k2">)</span><span class="k2">:</span>
<span class="number"> 10</span>
<span class="number"> 11</span>    <span class="c">// don't need the default double buffer if I'm drawing to my own buffer</span>
<span class="number"> 12</span>    <a href="http://www.allegro.cc/manual/al_set_new_display_option"><span class="a">al_set_new_display_option</span></a><span class="k2">(</span>ALLEGRO_SINGLE_BUFFER, <span class="n">1</span>, ALLEGRO_SUGGEST<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>    display <span class="k3">=</span> al_create_displayp<span class="k2">(</span><span class="n">1024</span>, <span class="n">960</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span>    <span class="c">// create buffer to a dedicated size. What ever you need.</span>
<span class="number"> 17</span>    buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_bitmap"><span class="a">al_create_bitmap</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"> 18</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>buffer<span class="k2">)</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 19</span>
<span class="number"> 20</span>    <span class="c">// more init stuff</span>
<span class="number"> 21</span>
<span class="number"> 22</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 23</span><span class="k2">}</span>
<span class="number"> 24</span>
<span class="number"> 25</span><span class="k1">void</span> draw<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 26</span><span class="k2">{</span>
<span class="number"> 27</span>    <span class="c">// get current target so we can restore when we're done drawing</span>
<span class="number"> 28</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> target <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_target_bitmap"><span class="a">al_get_target_bitmap</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>
<span class="number"> 30</span>    <span class="c">//set our buffer to be the drawing target</span>
<span class="number"> 31</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>
<span class="number"> 33</span>    <span class="c">// do my drawing</span>
<span class="number"> 34</span>
<span class="number"> 35</span>    <span class="c">// restore the previous target buffer</span>
<span class="number"> 36</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>target<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</span>
<span class="number"> 38</span>    <span class="c">// draw and scale our buffer to size of display</span>
<span class="number"> 39</span>    <a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a><span class="k2">(</span>buffer, <span class="n">0</span>, <span class="n">0</span>, <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>buffer<span class="k2">)</span>, <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>buffer<span class="k2">)</span>, <span class="n">0</span>, <span class="n">0</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>, <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="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>
<span class="number"> 41</span>    <span class="c">// draw display to screen</span>
<span class="number"> 42</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>
</div></div><p>

It&#39;s off the top of my head, so maybe bugs.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Fri, 08 Sep 2023 01:42:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I should note that if you use the native resolution and hz, FULLSCREEN is no problem. The only problem with native fullscreen is the destroy create window routine.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 09 Sep 2023 20:06:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think I figured out the difference in the A4 and A5 setup in my programs.  In A4, I wasn&#39;t altering the screen size, I was changing the resolution of the monitor.  This allows the components of the game screen to change proportionally.  </p><p>See the game screen from my A4 game and you&#39;ll notice the screen items didn&#39;t remain the same size when the screen was in full screen mode. </p><p>A4 used this command. <br />  set_gfx_mode(GFX_AUTODETECT,640, 480, 0, 0); //Fullscreen. Could have used GFX_AUTODETECT_FULLSCREEN as well</p><p>or <br /> set_gfx_mode(GFX_AUTODETECT_WINDOWED,640, 480, 0, 0); // for window screen</p><p>In A5 I was using </p><p>al_set_display_flag(display, ALLEGRO_FULLSCREEN_WINDOW, !(al_get_display_flags(display) &amp; ALLEGRO_FULLSCREEN_WINDOW)); // It does make the game full screen but doesn&#39;t change the content of the screen proportionally .</p><p>So back to my original question is there any equivalent in A5 of the A4 set_gfx_mode?  Thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Fri, 15 Sep 2023 20:49:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Like we said before: you have to destroy the current display, change the new display flags, create the new display</p><p>Don&#39;t do this if you have a bunch of events. Make sure all events are cleared first. Or if you do, then immediately flush event queue. Might have events using previous display and we don&#39;t want that. </p><p>Here, I made it slightly easier
</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">// toggles fullscreen/windowed</span>
<span class="number">  2</span>DISPLAY<span class="k3">*</span> al_toggle_display_mode<span class="k2">(</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="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="c">// call it like this</span>
<span class="number">  5</span>my_display <span class="k3">=</span> al_toggle_display_mode<span class="k2">(</span>my_display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>
<span class="number">  8</span>DISPLAY<span class="k3">*</span> al_toggle_display_mode<span class="k2">(</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">  9</span><span class="k2">{</span>
<span class="number"> 10</span>    <span class="c">// get current display's flags</span>
<span class="number"> 11</span>    <span class="k1">int</span> flags <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_flags"><span class="a">al_get_display_flags</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>    <span class="c">// toggle fullscreen/windowed mode</span>
<span class="number"> 14</span>    <span class="k1">if</span> <span class="k2">(</span>flags <span class="k3">&amp;</span> ALLEGRO_FULLSCREEN<span class="k2">)</span>
<span class="number"> 15</span>    <span class="k2">{</span>
<span class="number"> 16</span>        flags <span class="k3">=</span> flags <span class="k3">|</span> ALLEGRO_WINDOWED ^ ALLEGRO_FULLSCREEN<span class="k2">;</span>
<span class="number"> 17</span>    <span class="k2">}</span>
<span class="number"> 18</span>    <span class="k1">else</span>
<span class="number"> 19</span>    <span class="k2">{</span>
<span class="number"> 20</span>        flags <span class="k3">=</span> flags <span class="k3">|</span> ALLEGRO_FULLSCREEN ^ ALLEGRO_WINDOWED<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="c">// destroy current display</span>
<span class="number"> 24</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"> 25</span>
<span class="number"> 26</span>    <span class="c">// change new display flags</span>
<span class="number"> 27</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>flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>
<span class="number"> 29</span>    <span class="c">// recreate display</span>
<span class="number"> 30</span>    <span class="k1">return</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"> 31</span><span class="k2">}</span>
</div></div><p>

Or how about you set what you want
</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>DISPLAY<span class="k3">*</span> al_set_display_mode<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display, <span class="k1">bool</span> fullscreen<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    <span class="c">// get current display's flags</span>
<span class="number">  4</span>    <span class="k1">int</span> flags <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_flags"><span class="a">al_get_display_flags</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>    <span class="c">// don't do anything if already set</span>
<span class="number">  7</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>fullscreen <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>flags <span class="k3">&amp;</span> ALLEGRO_FULLSCREEN<span class="k2">)</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span><span class="k3">!</span>fullscreen <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>flags <span class="k3">&amp;</span> ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">)</span>
<span class="number">  8</span>    <span class="k2">{</span>
<span class="number">  9</span>        <span class="k1">return</span> display<span class="k2">;</span>
<span class="number"> 10</span>    <span class="k2">}</span>
<span class="number"> 11</span>
<span class="number"> 12</span>    <span class="c">// remove both windowed and/or fullscreen mode</span>
<span class="number"> 13</span>    flags <span class="k3">&amp;</span><span class="k3">=</span> ~<span class="k1">int</span><span class="k2">(</span>ALLEGRO_WINDOWED <span class="k3">|</span> ALLEGRO_FULLSCREEN<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span>    <span class="c">// set windowed or fullscreen</span>
<span class="number"> 16</span>    flags <span class="k3">|</span><span class="k3">=</span> <span class="k2">(</span>fullscreen ? ALLEGRO_FULLSCREEN <span class="k2">:</span> ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>
<span class="number"> 18</span>    <span class="c">// destroy current display</span>
<span class="number"> 19</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"> 20</span>
<span class="number"> 21</span>    <span class="c">// change new display flags</span>
<span class="number"> 22</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>flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>
<span class="number"> 24</span>    <span class="c">// recreate display</span>
<span class="number"> 25</span>    <span class="k1">return</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"> 26</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Fri, 15 Sep 2023 21:48:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Daniel, </p><p>The code looks good.  I&#39;ll copy it so I can goof around with it. Thanks.</p><p>I may have been a little misleading.  I&#39;m not looking at toggling back and forth or resizing windows.  I was trying to take an easy way out.</p><p>Currently my game is in a 640,480 window.  My grandson asked if I could make it bigger.  The blocks on the screen are say 40x80 with say 20 pixels between.  I was trying to get out of making them all 80X120 and then recalculating all the X/Y starting points, move all the verbiage down the screen XX amount of pixels (IE trial and error) I was hoping the game would just change screen modes to 640,480 (full screen) and I wouldn&#39;t have to rewrite the graphics.  Sounds like in A5 it&#39;s not as easy as A4.   </p><p>Of course by now I could have rewrote it <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=";D" border="0" />. Thanks again for your help.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Fri, 15 Sep 2023 23:02:18 +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/618856/1053857#target">AceBlkwell</a> said:</div><div class="quote"><p>Sounds like in A5 it&#39;s not as easy as A4.</p></div></div><p>
Yes and no. It&#39;s a hurdle you have to jump. I find it superior to A4 even if a little more cumbersome. It helped that I was already pretty fluent with A4 and had been using for years. I was on the fence and decided to switch to A5. To do that, I remade a game I made in A4 to A5 as a learning tool.</p><p>Points:<br />A4 is not updated. <br />A5 has been out for over a decade now. Has OpenGl/Direct3D builtin which give you hardware accelerated drawing from the start.</p><p>As to your issue:</p><p>Stretch it.</p><p>Make a buffer 640,480. Draw all things to buffer unstretched.<br />Stretch buffer to display. Then it doesn&#39;t matter if fullscreen or windowed and you can use allegro_fullscreen_windowed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Fri, 15 Sep 2023 23:17:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>640x480 fullscreen resolutions are probably deprecated in Windoze by now. You need at least 800x600 or 1024,768 and HDMI is 1920x1080. 4K is out now as well. It really depends on whether or not your monitor is an ancient piece of poo or not. I&#39;m guessing it&#39;s a CRT? Even a decade ago a decent CRT could do 1600x1200.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 16 Sep 2023 23:08:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=";D" border="0" /> Edgar, </p><p>I just chose 640x480 when I was experimenting with writing in A5.  After I got the program working well enough along with my grandson&#39;s request, I wanted to go larger.  I just didn&#39;t want to re-write the graphic locations, sizes, and mouse reaction locations. So I was hoping, like A4, I could set the graphics mode instead.  Given that&#39;s not easily possible and the game is pretty simple, I&#39;ll just re-write.  I was really just thinking of the future should I get in a similar situation. </p><p>Daniel gave me some good direction, that I may hold on to for the future but may be a little complicated for such a simple game.  Thanks anyways Daniel. </p><p>I did try al_set_new_display_flags(ALLEGRO_FULLSCREEN) but it stops the display from initializing.  If I do RESIZABLE or FULLSCREEN_WINDOW it functions fine, just doesn&#39;t do what I was hoping it would do.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Mon, 18 Sep 2023 21:17:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>that&#39;s just it, you don&#39;t have to rewrite the positions of everything. Use a transform. Use a stretch blit. Either will work fine.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 19 Sep 2023 20:37:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>To toggle fullscreen and windowed modes in Allegro 5, use al_set_display_flag with ALLEGRO_FULLSCREEN_WINDOW. Remember to adjust your display&#39;s resolution and adapt your drawing logic accordingly for each mode to maintain proper rendering of game elements. Implement a UI element for user-initiated mode changes. you can learn more at: <a href="https://fifaapk.com/">https://fifaapk.com/</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (amelia)</author>
		<pubDate>Tue, 19 Sep 2023 21:22:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Daniel mentioned something about stretching.  What do I do, write to a 640x480 (in this example) buffer then from buffer to a 1600x1000 display?</p><p>Honestly I didn&#39;t know you could blit in A5?  I&#39;ve been al_draw(ing) and flipping. Thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Tue, 19 Sep 2023 21:28:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Use the function <span class="source-code"><a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a></span> to apply the proper transforms.</p><div class="source-code snippet"><div class="inner"><pre><span class="c">// buffer is your bitmap (640,480 or whatever you need)</span>
<span class="c">// target is current target which should be display's backbuffer.</span>

<a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a><span class="k2">(</span>buffer, <span class="n">0</span>, <span class="n">0</span>, <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>buffer<span class="k2">)</span>, <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>buffer<span class="k2">)</span>, <span class="n">0</span>, <span class="n">0</span>, <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>target<span class="k2">)</span>, <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>target<span class="k2">)</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Tue, 19 Sep 2023 21:34:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="">AceBlkwell</a> said:</div><div class="quote"><p>
Honestly I didn&#39;t know you could blit in A5? I&#39;ve been al_draw(ing) and flipping. Thanks. 
</p></div></div><p>
A quick look through the manual at liballeg.org could do you a lot of good. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 20 Sep 2023 17:36:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hey amelia, I missed your input.  I&#39;ll check it out. Thanks</p><p>Edgar, why read the manual when you can talk directly with the people who wrote the manual <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=";D" border="0" />.  Seriously, I could do a better job of reading up.  However, I do often &quot;google&quot; my problem first, but MAN pages giving a description of what a command does isn&#39;t nearly as helpful as a brief tutorial approach to a command. </p><p>Example, <br />al_flip_display</p><p>void al_flip_display(void). Copies or updates the front and back (doesn&#39;t tell how) buffers so that what has been drawn previously on the currently selected display becomes visible on screen. Pointers to the special back and front buffer bitmaps remain valid and retain their semantics as back and front buffers respectively, although their contents may have changed.<br />Several display options change how this function behaves: etc etc.</p><p>See also: al_set_new_display_flags, al_set_new_display_option. I can start down this rabbit hole of links to links to further links.</p><p>My question that it doesn&#39;t answer is will this command allow me to chose which display I want to flip?  <br />Like maybe  al_flip_display(BUFFER)&#39; or al_flip_display(DISP);</p><p>My confusion with Daniel&#39;s example is I don&#39;t al_draw_ to a given ALLEGRO_DISPLAY*. Since I was only using one, I assumed all my al_draw commands were drawing to the only game in town.  Now that I&#39;m generating a second one as a buffer, how to I draw to buffer, al_draw_scaled_bitmap from buffer to disp and flip the disp (not the buffer)?</p><p>You have a valid point in my case, I do often go to the path of least resistance, but in my defense, Some of the MAN pages aren&#39;t written for novices. IMHO
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Wed, 20 Sep 2023 20:12:27 +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="k1">void</span> draw<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>     <span class="c">// grab current target bitmap</span>
<span class="number">  4</span>     <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> target <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_target_bitmap"><span class="a">al_get_target_bitmap</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>     <span class="c">// set our buffer bitmap as target</span>
<span class="number">  7</span>     <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span>     <span class="c">// do all drawing</span>
<span class="number"> 10</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>color::map<span class="k2">(</span><span class="n">0xffffffff</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>     <span class="c">// other drawing</span>
<span class="number"> 12</span>  
<span class="number"> 13</span>     <span class="c">// restore previous target bitmap</span>
<span class="number"> 14</span>     <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>target<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span>    <span class="c">// draw our buffer bitmap to display stretching to fit</span>
<span class="number"> 17</span>    <a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a><span class="k2">(</span>buffer, 
<span class="number"> 18</span>        <span class="n">0</span>.<span class="n">0f</span>, <span class="n">0</span>.<span class="n">0f</span>, 
<span class="number"> 19</span>        <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>buffer<span class="k2">)</span>, 
<span class="number"> 20</span>        <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>buffer<span class="k2">)</span>, 
<span class="number"> 21</span>        <span class="n">0</span>.<span class="n">0f</span>, <span class="n">0</span>.<span class="n">0f</span>, 
<span class="number"> 22</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="number"> 23</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="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>
<span class="number"> 25</span>    <span class="c">// flip display</span>
<span class="number"> 26</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"> 27</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Wed, 20 Sep 2023 20:44:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now your talking Daniel.  So simple even I can follow. Of course that doesn&#39;t mean I won&#39;t have further questions on the topic <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" /></p><p>** UPDATE ** See told you.  I&#39;m at a loss on &quot;target&quot;  I understand target is a bitmap and buffer is a bitmap and display is a display.  However, if we are not drawing to target, why is it needed or why do I need to switch back and forth?  Can&#39;t I just draw to buffer, send it to display and then flip?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Wed, 20 Sep 2023 21:18:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>All drawing is done to the current target. ALL drawing.</p><p>If you want to draw to a different target (like a buffer bitmap) then you have to set it. Then you have to reset it back to the display&#39;s back buffer to draw the buffer to the display.</p><p>In my example, I am preserving whatever is the current target. Usually the display&#39;s back buffer. You don&#39;t have to do it that either. You could just set target to display&#39;s back buffer.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Wed, 20 Sep 2023 21:51:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks Daniel.  I get it now, or at least in my trial and error.  You can&#39;t  al_draw_scaled_bitmap a bitmap that is still the target.  I couldn&#39;t get it to work until I did as you said and created a second bitmap to revert back to prior to my  al_draw_scaled_bitmap command.</p><p>It visually works fine.  The down side is my mouse positions are way off. Example, I have a &quot;Play&quot; button at 489 x 343 to 575 x 379.  My program looks for the mouse to be somewhere within that boundary while the mouse button is down. With the stretching, my &quot;Play&quot; button is closer to 1300 x 700 to 1380 x 736  . So while I&#39;ve solved my graphics enlarging issue, I still have the mouse Key Down location issue.  Still it&#39;s been educational.  Thanks for all the help.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Thu, 21 Sep 2023 01:13:53 +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="c">// ** warning ** I pulled this from my github repository and removed all parts not needed.</span>
<span class="number">  2</span><span class="c">//  So may have introduced errors or bugs.</span>
<span class="number">  3</span><span class="c">// these are stored in my class, but could make them global if needed.</span>
<span class="number">  4</span><span class="k1">float</span> aspect_x <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  5</span><span class="k1">float</span> aspect_y <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  6</span><span class="k1">float</span> <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  7</span><span class="k1">float</span> <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span><span class="c">// during init, but after both display and buffer are created. I set the current aspects</span>
<span class="number"> 10</span>aspect_x <span class="k3">=</span> <span class="k1">static_cast</span><span class="k3">&lt;</span>float&gt;<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">)</span> <span class="k3">/</span> <span class="k1">static_cast</span><span class="k3">&lt;</span>float&gt;<span class="k2">(</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="k2">;</span>
<span class="number"> 11</span>aspect_y <span class="k3">=</span> <span class="k1">static_cast</span><span class="k3">&lt;</span>float&gt;<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">)</span> <span class="k3">/</span> <span class="k1">static_cast</span><span class="k3">&lt;</span>float&gt;<span class="k2">(</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="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>
<span class="number"> 14</span><span class="c">// while processing events</span>
<span class="number"> 15</span><span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_RESIZE:
<span class="number"> 16</span><span class="k2">{</span>
<span class="number"> 17</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"> 18</span>    aspect_x <span class="k3">=</span> <span class="k1">static_cast</span><span class="k3">&lt;</span>float&gt;<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">)</span> <span class="k3">/</span> <span class="k1">static_cast</span><span class="k3">&lt;</span>float&gt;<span class="k2">(</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>event.display.source<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>    aspect_y <span class="k3">=</span> <span class="k1">static_cast</span><span class="k3">&lt;</span>float&gt;<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">)</span> <span class="k3">/</span> <span class="k1">static_cast</span><span class="k3">&lt;</span>float&gt;<span class="k2">(</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>event.display.source<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span><span class="k2">}</span> <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 21</span>
<span class="number"> 22</span>
<span class="number"> 23</span><span class="k1">case</span> ALLEGRO_EVENT_MOUSE_AXES:
<span class="number"> 24</span><span class="k2">{</span>
<span class="number"> 25</span>    <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">=</span> <span class="k1">static_cast</span><span class="k3">&lt;</span>float&gt;<span class="k2">(</span>event.mouse.x<span class="k2">)</span> <span class="k3">*</span> aspect_x<span class="k2">;</span>
<span class="number"> 26</span>    <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">=</span> <span class="k1">static_cast</span><span class="k3">&lt;</span>float&gt;<span class="k2">(</span>event.mouse.y<span class="k2">)</span> <span class="k3">*</span> aspect_y<span class="k2">;</span>
<span class="number"> 27</span><span class="k2">}</span> <span class="k1">break</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Thu, 21 Sep 2023 03:48:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Pet peeve of mine - C++ style casts are useless and C style casts should be preferred except in the case of reinterpret_cast, which actually does something.</p><p>But DanielH is right. You need to untransform the mouse coordinates to your buffer. You can do that with an inverse transform or just like DanielH showed you.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 21 Sep 2023 17:59:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks guys.</p><p>I was working on something similar. IE dividing display H and W by buffer, then multiplying button coordinates X/Y by those results.   Works well but didn&#39;t look as smooth or concise  I&#39;ll see if I can&#39;t merge the two ideas.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Fri, 22 Sep 2023 01:38:11 +0000</pubDate>
	</item>
</rss>
