<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Display Mode removes window controls</title>
		<link>http://www.allegro.cc/forums/view/618882</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 12 Jan 2024 23:36:23 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>All,</p><p>I&#39;ll try to be brief and if you need code I can send the files.  There is too much going on to single out a single section.</p><p>In short, I wrote a simple &quot;concentration&quot; match game.  Mainly to use a mouse which I&#39;ve never written for. As ideas came to me I added and patched onto the original game.  Once running fair my grandson asked if I could go full screen.  You may remember that post.   I managed to include a choice of screen sizes and have the blocks / cards change proportionally so I didn&#39;t have to rewrite a bunch of size cards. </p><p>Things went well.  I made it so you could choose a screen size, with largest being 1600 x 900.  At this size I still have the window title bar.  Still my grandson pointed out it wasn&#39;t full screen. (1900x1080) So I decided for a trial I&#39;d work with FULLSCREEN.  The program goes full screen however the content doesn&#39;t.  I need the width and height to use in calculating the proportional drawing of the cards.  I also use it to calculate mouse position in relation to the cards.  </p><p>In any case I tried working with DISPLAY_MODE.  It will give me the number of screen modes along with their height x width.  I minus 2 from max count of screen modes and use that H x W. It works fine.   Not quite tall enough to cover screen but close.  </p><p>I said all of this to ask, if I&#39;m just setting display size in the same manner as with 320x200 / 640x480/ 800x600 etc, then why does the window control disappear like with full screen?  I grab the screen modes.  Use the largest height and width. Calculate like normal and set the screen to the height and width as before.  I just don&#39;t have a window bar now.  Was just curious.  </p><p>Thanks</p><p>OK I thought maybe the function for choosing screen size might help.  How I use the numbers later really doesn&#39;t matter.  Here is where the screen size is set. </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">/**********************INCLUDES ***********************/</span>
<span class="number">   2</span><span class="p">#include &lt;cstdio&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;cstdlib&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;string&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;allegro5/allegro5.h&gt;</span>
<span class="number">   7</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">   8</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">   9</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">  11</span><span class="p">#include &lt;allcolor_A5.h&gt;</span>
<span class="number">  12</span>
<span class="number">  13</span><span class="c">/********************* DEFINES ******/</span>
<span class="number">  14</span>
<span class="number">  15</span>
<span class="number">  16</span><span class="c">/********************* STRUCTS ******/</span>
<span class="number">  17</span>
<span class="number">  18</span>
<span class="number">  19</span><span class="c">/********************* FUNCTION DECLARE ******/</span>
<span class="number">  20</span>
<span class="number">  21</span><span class="c">/********************* EXTERNALS ******/</span>
<span class="number">  22</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> queue<span class="k2">;</span>
<span class="number">  23</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> disp<span class="k2">;</span>
<span class="number">  24</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> buffer<span class="k2">;</span>
<span class="number">  25</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a><span class="k3">*</span> <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">;</span>
<span class="number">  26</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a><span class="k3">*</span> scr_font<span class="k2">;</span>
<span class="number">  27</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a><span class="k3">*</span> err_font<span class="k2">;</span>
<span class="number">  28</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number">  29</span><span class="k1">extern</span> <span class="k1">int</span> nDispWD<span class="k2">;</span>
<span class="number">  30</span><span class="k1">extern</span> <span class="k1">int</span> nDispHT<span class="k2">;</span>
<span class="number">  31</span>
<span class="number">  32</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY_MODE"><span class="a">ALLEGRO_DISPLAY_MODE</span></a> mode<span class="k2">;</span>
<span class="number">  33</span>
<span class="number">  34</span><span class="c">/********************* PROGRAM FUNCTIONS *****/</span>
<span class="number">  35</span>
<span class="number">  36</span><span class="k1">void</span> scr_size<span class="k2">(</span><span class="k2">)</span>
<span class="number">  37</span><span class="k2">{</span>
<span class="number">  38</span>
<span class="number">  39</span>  <span class="k1">int</span> modes_count <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> 
<span class="number">  40</span>  <span class="k1">int</span> nEntry <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  41</span>  <span class="k1">bool</span> bQuit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span>  modes_count <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_num_display_modes"><span class="a">al_get_num_display_modes</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>
<span class="number">  45</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>modes_count-2, <span class="k3">&amp;</span>mode<span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>      <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span>COLOR::BLACK<span class="k2">)</span><span class="k2">;</span>
<span class="number">  47</span>      <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BR_CYAN, <span class="n">10</span>, <span class="n">20</span>, <span class="n">0</span>, <span class="s">"Choose screen size."</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  48</span>      <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BR_RED, <span class="n">10</span>, <span class="n">50</span>, <span class="n">0</span>, <span class="s">"  1) 320 x 200"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span>      <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BR_RED, <span class="n">10</span>, <span class="n">80</span>, <span class="n">0</span>, <span class="s">"  2) 640 x 480 "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  50</span>      <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BR_RED, <span class="n">10</span>, <span class="n">110</span>, <span class="n">0</span>, <span class="s">"  3) 800 x 640 "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  51</span>      <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BR_RED, <span class="n">10</span>, <span class="n">140</span>, <span class="n">0</span>, <span class="s">"  4) 1200 x 800 "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  52</span>      <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BR_RED, <span class="n">10</span>, <span class="n">170</span>, <span class="n">0</span>, <span class="s">"  5) 1600 x 900 "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>      <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BR_RED, <span class="n">10</span>, <span class="n">200</span>, <span class="n">0</span>, <span class="s">"  6) Fullscreen "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  54</span>
<span class="number">  55</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">  56</span>
<span class="number">  57</span><span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>bQuit <span class="k2">)</span>
<span class="number">  58</span> <span class="k2">{</span>
<span class="number">  59</span>      <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>queue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>
<span class="number">  61</span>      <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number">  62</span>      <span class="k2">{</span>
<span class="number">  63</span>        <span class="k1">if</span><span class="k2">(</span>event.keyboard.keycode <span class="k3">&gt;</span><span class="k3">=</span> ALLEGRO_KEY_1 <span class="k3">&amp;</span><span class="k3">&amp;</span> event.keyboard.keycode <span class="k3">&lt;</span><span class="k3">=</span> ALLEGRO_KEY_6 <span class="k2">)</span>
<span class="number">  64</span>         <span class="k2">{</span>                                        <span class="c">// Loop for keyboard choice A ~ X</span>
<span class="number">  65</span>            nEntry <span class="k3">=</span> event.keyboard.keycode-27<span class="k2">;</span>
<span class="number">  66</span>                bQuit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  67</span>         <span class="k2">}</span>  <span class="c">// end if for screen choice</span>
<span class="number">  68</span>        <span class="k2">}</span> <span class="c">// end Key Down</span>
<span class="number">  69</span>      <span class="k2">}</span> <span class="c">// end While</span>
<span class="number">  70</span><span class="k1">switch</span><span class="k2">(</span>nEntry<span class="k2">)</span>                                         <span class="c">// Setting up screen sizes - resolutions for a_init()</span>
<span class="number">  71</span>      <span class="k2">{</span>
<span class="number">  72</span>          <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number">  73</span>            nDispWD <span class="k3">=</span> <span class="n">320</span><span class="k2">;</span>
<span class="number">  74</span>            nDispHT <span class="k3">=</span> <span class="n">240</span><span class="k2">;</span>
<span class="number">  75</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number">  76</span>          <span class="k1">case</span> <span class="n">2</span><span class="k2">:</span>
<span class="number">  77</span>            nDispWD <span class="k3">=</span> <span class="n">640</span><span class="k2">;</span>
<span class="number">  78</span>            nDispHT <span class="k3">=</span> <span class="n">480</span><span class="k2">;</span>
<span class="number">  79</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number">  80</span>          <span class="k1">case</span> <span class="n">3</span><span class="k2">:</span>
<span class="number">  81</span>            nDispWD <span class="k3">=</span> <span class="n">800</span><span class="k2">;</span>
<span class="number">  82</span>            nDispHT <span class="k3">=</span> <span class="n">600</span><span class="k2">;</span>
<span class="number">  83</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number">  84</span>          <span class="k1">case</span> <span class="n">4</span><span class="k2">:</span>
<span class="number">  85</span>            nDispWD <span class="k3">=</span> <span class="n">1200</span><span class="k2">;</span>
<span class="number">  86</span>            nDispHT <span class="k3">=</span> <span class="n">800</span><span class="k2">;</span>
<span class="number">  87</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number">  88</span>          <span class="k1">case</span> <span class="n">5</span><span class="k2">:</span>
<span class="number">  89</span>            nDispWD <span class="k3">=</span> <span class="n">1600</span><span class="k2">;</span>
<span class="number">  90</span>            nDispHT <span class="k3">=</span> <span class="n">900</span><span class="k2">;</span>
<span class="number">  91</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number">  92</span>          <span class="k1">case</span> <span class="n">6</span><span class="k2">:</span>
<span class="number">  93</span>              nDispWD <span class="k3">=</span> mode.width<span class="k2">;</span>
<span class="number">  94</span>              nDispHT <span class="k3">=</span> mode.height<span class="k2">;</span>
<span class="number">  95</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number">  96</span>      <span class="k2">}</span>  <span class="c">//end switch</span>
<span class="number">  97</span>
<span class="number">  98</span> <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>disp<span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</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>nDispWD,nDispHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</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"> 101</span>
<span class="number"> 102</span>
<span class="number"> 103</span> <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 104</span>
<span class="number"> 105</span><span class="k2">}</span><span class="c">// end screen size function</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Thu, 04 Jan 2024 02:21:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You need to set the flags for fullscreen vs windowed when creating a new display.<br /><span class="source-code"><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><span class="k2">)</span></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Thu, 04 Jan 2024 02:53:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks Daniel I think I see the reason behind what you are saying.  I was just playing around and shaving 80 to 100 off the 1080 (largest screen height picked up by DISPLAY_MODE) and seen the title bar is there, it&#39;s just not visible at 1080.  The upper left hand corner of the window viewing area starts at 0,0, not the window itself. </p><p>I&#39;m guessing the if you don&#39;t specify windowed as you indicated, the screen height and width, must represent the area within the window and not include the window attributes themselves.  I only use the X in the title block but it would probably be the same with scroll bars and menus if you used them. </p><p>Just thinking out loud.  Thanks Again.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Thu, 04 Jan 2024 03:50:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, if you make it too big, the title bar will go off screen.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Thu, 04 Jan 2024 05:27:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can use ALLEGRO_FULLSCREEN_WINDOW as the graphics mode, and just scale the graphics to match that.</p><p>I use this code to scale my drawing so that it fills the screen without changing the aspect ratio:
</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">static</span> <span class="k1">void</span> set_up_scaling<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> trans<span class="k2">;</span>
<span class="number">  4</span>  <span class="k1">int</span> display_w, display_h<span class="k2">;</span>
<span class="number">  5</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>old<span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>  old <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">  8</span>  <a href="http://www.allegro.cc/manual/al_set_target_backbuffer"><span class="a">al_set_target_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span>  <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>trans<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>  al_reset_clipping_rectangle<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>  display_w <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_width"><span class="a">al_get_display_width</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>  display_h <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_height"><span class="a">al_get_display_height</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span>  <span class="k1">if</span> <span class="k2">(</span>display_w <span class="k3">!</span><span class="k3">=</span> GFX_WIDTH <span class="k3">|</span><span class="k3">|</span> display_h <span class="k3">!</span><span class="k3">=</span> GFX_HEIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 17</span>    <span class="k1">int</span> scaled_w, scaled_h, view_x, view_y<span class="k2">;</span>
<span class="number"> 18</span>    <span class="k1">float</span> factor<span class="k2">;</span>
<span class="number"> 19</span>
<span class="number"> 20</span>    factor <span class="k3">=</span> MIN<span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>display_w <span class="k3">/</span> GFX_WIDTH, <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>display_h <span class="k3">/</span> GFX_HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>    scaled_w <span class="k3">=</span> GFX_WIDTH <span class="k3">*</span> factor<span class="k2">;</span>
<span class="number"> 22</span>    scaled_h <span class="k3">=</span> GFX_HEIGHT <span class="k3">*</span> factor<span class="k2">;</span>
<span class="number"> 23</span>    view_x <span class="k3">=</span> <span class="k2">(</span>display_w <span class="k3">-</span> scaled_w<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 24</span>    view_y <span class="k3">=</span> <span class="k2">(</span>display_h <span class="k3">-</span> scaled_h<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 25</span>
<span class="number"> 26</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>letterbox_color<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>
<span class="number"> 28</span>    <a href="http://www.allegro.cc/manual/al_scale_transform"><span class="a">al_scale_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>trans, factor, factor<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>    <a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>trans, view_x, view_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>    <a href="http://www.allegro.cc/manual/al_set_clipping_rectangle"><span class="a">al_set_clipping_rectangle</span></a><span class="k2">(</span>view_x, view_y, scaled_w, scaled_h<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>
<span class="number"> 32</span>    <span class="c">/* Logging */</span>
<span class="number"> 33</span>    logfile<span class="k2">(</span><span class="s">"Display is %dx%d"</span>, display_w, display_h<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>    logfile<span class="k2">(</span><span class="s">"Scaling to %dx%d"</span>, scaled_w, scaled_h<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>    logfile<span class="k2">(</span><span class="s">"Image top left: x=%d, y=%d "</span>, view_x, view_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>    LOGSKIP<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</span>  <span class="k2">}</span>
<span class="number"> 38</span>
<span class="number"> 39</span>  <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>trans<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</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>old<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (torhu)</author>
		<pubDate>Thu, 04 Jan 2024 05:56:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks torhu,</p><p>My original attempts with FULLSCREEN (and WINDOW) did change the program screen as expected.  However, the program itself didn&#39;t scale to match.  </p><p>If I set the screen size to a specific / numeric size I could get the program to scale proportionally.  The issue came with the mouse position in relation to the cards/blocks on screen.   When the mouse button was pressed to flip the card, the card was no longer in the original location or size.  I figured out a way to scale the mouse by put in an offset based on screen size.  </p><p>I think your solution will make that a lot easier.  I&#39;ll read up on transforming I haven&#39;t used it before. Or clipping for that matter.  Thanks again.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Thu, 04 Jan 2024 20:28:10 +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/618882/1054030#target">AceBlkwell</a> said:</div><div class="quote"><p> The issue came with the mouse position in relation to the cards/blocks on screen. When the mouse button was pressed to flip the card, the card was no longer in the original location or size. I figured out a way to scale the mouse by put in an offset based on screen size.</p></div></div><p>I haven&#39;t tried using mouse input with this way of scaling, but I assume it would just be something like this:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> inverse_trans<span class="k2">;</span>
<span class="k1">float</span> unscaled_x, unscaled_y<span class="k2">;</span>

<a href="http://www.allegro.cc/manual/al_copy_transform"><span class="a">al_copy_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>inverse_trans, <span class="k3">&amp;</span>drawing_trans<span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/al_invert_transform"><span class="a">al_invert_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>inverse_trans<span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/al_transform_coordinates"><span class="a">al_transform_coordinates</span></a><span class="k2">(</span><span class="k3">&amp;</span>inverse_trans, <span class="k3">&amp;</span>unscaled_x, <span class="k3">&amp;</span>unscaled_y<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

APPEND:<br />Need to set x and y to the coordinates from the mouse event first, of course.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (torhu)</author>
		<pubDate>Fri, 05 Jan 2024 05:06:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks torhu,</p><p>Again, I really need to investigate TRANSFORM.  I&#39;m going to look it over today.</p><p>Meanwhile here is the short of what I am doing.   The opening screen is set at 640x480.  It has Play &amp; Quit buttons.  For simplicity sake, lets say upper left of Play is 50,50 and lower right is 100,100.   The Quit button is at 50,120 by 100,170.</p><p>When the screen is set to a different size, say 800x600, and I do a al_draw_scaled_bitmap, the buttons are no longer at those coordinates.  When the mouse button is pressed, &amp; I look to see if it&#39;s between 50,50 x 100,100, nothing happens. </p><p>What I do is (ht_percentage = screen height / buffer height) &amp; the same for width.  The ht_percentage and wd_percentage are multiplied by the original 50,50 x 100,100.  This give me the new location of the buttons.  I do this as well for the card locations in the game.  </p><p>I&#39;m sure there is a better way of doing this but I couldn&#39;t find it. </p><p>Thanks again for the insight.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Fri, 05 Jan 2024 22:34:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ace, the gist of what you are doing is applying world transformations.</p><p>When you place your button at 50,50 that is world space. When you make your display larger than normal, that is screen space. You need a way to translate from screen space to world space and back.</p><p>In this case all you had to do was scale and unscale the mouse for the button coordinates.</p><p>I hope this makes it a little clearer.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 10 Jan 2024 21:04:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That is clearer Edgar, and sounds a lot simpler.  I&#39;ll look into it.  I do scale the buffer, make sense there would be an option to do this for the mouse.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Thu, 11 Jan 2024 22:35:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You just create a transform to move from world to screen coordinates. Then you invert that transform and apply it to your mouse coordinates to get their position on the world.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 12 Jan 2024 23:36:23 +0000</pubDate>
	</item>
</rss>
