<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>[A5] Show &amp; Hide window/display Cross-Platform ?</title>
		<link>http://www.allegro.cc/forums/view/616620</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 01 Dec 2016 15:09:17 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I wonder to know if we can show and hide the display with allegro 5 functions ?</p><p>Something like this:
</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="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">;</span> <span class="c">// if I have 3 monitors for example !</span>
<span class="number"> 2</span>
<span class="number"> 3</span>function_to_show<span class="k2">(</span>display<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// show display[0] !</span>
<span class="number"> 4</span>function_to_hide<span class="k2">(</span>display<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// hide display[1] !</span>
<span class="number"> 5</span>function_to_hide<span class="k2">(</span>display<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// hide display[2] !</span>
</div></div><p>
Have you some solution ? I can use winapi with , ShowWindow &amp; HideWindow, but it&#39;s not very cross-platform.</p><p>EDIT : Finally, I found a solution ! <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>create-&gt; destroy -&gt; create -&gt; destroy...(bitmap &amp; display at the same time)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SilverTES)</author>
		<pubDate>Tue, 29 Nov 2016 15:09:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ShowWindow and HideWindow are better than destroying and recreating the display. :/</p><p>There are bound to be functions on the other platforms that allow you to do the same thing.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 30 Nov 2016 00:49:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Refactor Code, MultiMonitor support, Allegro 5:</p><p>Window.h :
</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="p">#ifndef WINDOW_H_INCLUDED</span>
<span class="number">   2</span><span class="p">#define WINDOW_H_INCLUDED</span>
<span class="number">   3</span>
<span class="number">   4</span><span class="k1">template</span> <span class="k3">&lt;</span><span class="k1">class</span> E, <span class="k1">class</span> M&gt;
<span class="number">   5</span>E <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a> <span class="k2">(</span>E error, M msg<span class="k2">)</span>
<span class="number">   6</span><span class="k2">{</span>
<span class="number">   7</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> msg<span class="k2">;</span>
<span class="number">   8</span>    <span class="k1">return</span> error<span class="k2">;</span>
<span class="number">   9</span><span class="k2">}</span>
<span class="number">  10</span>
<span class="number">  11</span><span class="k1">class</span> Window
<span class="number">  12</span><span class="k2">{</span>
<span class="number">  13</span>    public:
<span class="number">  14</span>
<span class="number">  15</span>        Window<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span><span class="k2">}</span>
<span class="number">  16</span>        <span class="k1">virtual</span> ~Window<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span><span class="k2">}</span>
<span class="number">  17</span>
<span class="number">  18</span>        <span class="k1">int</span> init<span class="k2">(</span><span class="k1">int</span> screenW, <span class="k1">int</span> screenH, <span class="k1">int</span> scale, <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> title<span class="k2">)</span>
<span class="number">  19</span>        <span class="k2">{</span>
<span class="number">  20</span>             <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">)</span>
<span class="number">  21</span>                <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">(</span><span class="n">1</span>,<span class="s">"- Unable to init Allegro 5 !\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  22</span>
<span class="number">  23</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">)</span>
<span class="number">  24</span>                <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">(</span><span class="n">1</span>,<span class="s">"- Unable to init Addon image !\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</span>
<span class="number">  26</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">)</span>
<span class="number">  27</span>                <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">(</span><span class="n">1</span>,<span class="s">"- Unable to init Addon primitives !\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  28</span>
<span class="number">  29</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">)</span>
<span class="number">  30</span>                <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">(</span><span class="n">1</span>,<span class="s">"- Unable to init Addon font !\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>
<span class="number">  32</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">)</span>
<span class="number">  33</span>                <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">(</span><span class="n">1</span>,<span class="s">"- Unable to init Addon ttf !\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  34</span>
<span class="number">  35</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">)</span>
<span class="number">  36</span>                <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">(</span><span class="n">2</span>,<span class="s">"- Unable to install Keyboard !\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>
<span class="number">  38</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">)</span>
<span class="number">  39</span>                <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">(</span><span class="n">2</span>,<span class="s">"- Unable to install Keyboard !\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>
<span class="number">  41</span>            _title <span class="k3">=</span> title<span class="k2">;</span>
<span class="number">  42</span>            _scaleWindowed <span class="k3">=</span> scale<span class="k2">;</span>
<span class="number">  43</span>            _screenW <span class="k3">=</span> screenW<span class="k2">;</span>
<span class="number">  44</span>            _screenH <span class="k3">=</span> screenH<span class="k2">;</span>
<span class="number">  45</span>            _isFullScreen <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  46</span>            _displayAdapter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  47</span>
<span class="number">  48</span>            _windowDisplay <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>screenW<span class="k3">*</span>scale,screenH<span class="k3">*</span>scale<span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span>            _windowBuffer <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>screenW,screenH<span class="k2">)</span><span class="k2">;</span>
<span class="number">  50</span>
<span class="number">  51</span>            <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>_windowDisplay, _title<span class="k2">)</span><span class="k2">;</span>
<span class="number">  52</span>            setupScreen<span class="k2">(</span>_isFullScreen<span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>
<span class="number">  54</span>
<span class="number">  55</span>            <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">(</span><span class="n">0</span>,<span class="s">"- Init Window ! \n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  56</span>        <span class="k2">}</span>
<span class="number">  57</span>        <span class="k1">int</span> done<span class="k2">(</span><span class="k2">)</span>
<span class="number">  58</span>        <span class="k2">{</span>
<span class="number">  59</span>            <span class="k1">if</span> <span class="k2">(</span>_windowBuffer <span class="k3">!</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number">  60</span>                <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>_windowDisplay<span class="k2">)</span><span class="k2">;</span>
<span class="number">  61</span>
<span class="number">  62</span>            <span class="k1">if</span> <span class="k2">(</span>_windowDisplay <span class="k3">!</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number">  63</span>                <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>_windowBuffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>
<span class="number">  65</span>            <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">(</span><span class="n">0</span>,<span class="s">"- Done Window ! \n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  66</span>        <span class="k2">}</span>
<span class="number">  67</span>
<span class="number">  68</span>        <span class="k1">int</span> setWindow<span class="k2">(</span><span class="k1">int</span> screenW, <span class="k1">int</span> screenH, <span class="k1">int</span> scale, <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> title, <span class="k1">int</span> adapter<span class="k2">)</span>
<span class="number">  69</span>        <span class="k2">{</span>
<span class="number">  70</span>            <a href="http://www.allegro.cc/manual/al_set_new_display_adapter"><span class="a">al_set_new_display_adapter</span></a><span class="k2">(</span>adapter<span class="k2">)</span><span class="k2">;</span>
<span class="number">  71</span>            _scaleWindowed <span class="k3">=</span> scale<span class="k2">;</span>
<span class="number">  72</span>            _windowDisplay <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>screenW<span class="k3">*</span>scale,screenH<span class="k3">*</span>scale<span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>            <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>_windowDisplay, title<span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>
<span class="number">  75</span>            <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">(</span><span class="n">0</span>,<span class="s">"+++ Window Modified !\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>        <span class="k2">}</span>
<span class="number">  77</span>
<span class="number">  78</span>        <span class="k1">void</span> delWindow<span class="k2">(</span><span class="k2">)</span>
<span class="number">  79</span>        <span class="k2">{</span>
<span class="number">  80</span>            <span class="k1">if</span> <span class="k2">(</span>_windowDisplay<span class="k3">!</span><span class="k3">=</span>NULL<span class="k2">)</span>
<span class="number">  81</span>                <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>_windowDisplay<span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>
<span class="number">  83</span>            _windowDisplay <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  84</span>        <span class="k2">}</span>
<span class="number">  85</span>
<span class="number">  86</span>        <span class="k1">void</span> beginRender<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number">  87</span>        <span class="k2">{</span>
<span class="number">  88</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>_windowBuffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>        <span class="k2">}</span>
<span class="number">  90</span>
<span class="number">  91</span>        <span class="k1">void</span> endRender<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number">  92</span>        <span class="k2">{</span>
<span class="number">  93</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>_windowDisplay<span class="k2">)</span><span class="k2">;</span>
<span class="number">  94</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><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</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">  95</span>
<span class="number">  96</span>            <span class="k1">if</span> <span class="k2">(</span>_isFullScreen<span class="k2">)</span>
<span class="number">  97</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>_windowBuffer,
<span class="number">  98</span>                                      <span class="n">0</span>,<span class="n">0</span>,_screenW,_screenH,
<span class="number">  99</span>                                      _viewX,_viewY,_viewW,_viewH,
<span class="number"> 100</span>                                      <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 101</span>            <span class="k1">else</span>
<span class="number"> 102</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>_windowBuffer,
<span class="number"> 103</span>                                      <span class="n">0</span>,<span class="n">0</span>,_screenW,_screenH,
<span class="number"> 104</span>                                      <span class="n">0</span>,<span class="n">0</span>,_screenW<span class="k3">*</span>_scaleWindowed,_screenH<span class="k3">*</span>_scaleWindowed,
<span class="number"> 105</span>                                      <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 106</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"> 107</span>        <span class="k2">}</span>
<span class="number"> 108</span>
<span class="number"> 109</span>        <span class="k1">void</span> switchMonitor<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 110</span>        <span class="k2">{</span>
<span class="number"> 111</span>            _displayAdapter<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 112</span>            <span class="k1">if</span> <span class="k2">(</span>_displayAdapter&gt;al_get_num_video_adapters<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span><span class="n">1</span><span class="k2">)</span> _displayAdapter <span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number"> 113</span>            delWindow<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 114</span>            setWindow<span class="k2">(</span>_screenW,_screenH,_scaleWindowed,_title,_displayAdapter<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 115</span>            setupScreen<span class="k2">(</span>_isFullScreen<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>        <span class="k2">}</span>
<span class="number"> 117</span>
<span class="number"> 118</span>        <span class="k1">void</span> toggleFullScreen<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 119</span>        <span class="k2">{</span>
<span class="number"> 120</span>            <span class="k1">int</span> activeMonitor<span class="k2">(</span> <span class="k2">(</span>currentMonitor<span class="k2">(</span>getDisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>            <span class="k1">if</span> <span class="k2">(</span>_displayAdapter <span class="k3">!</span><span class="k3">=</span> activeMonitor<span class="k2">)</span>
<span class="number"> 122</span>            <span class="k2">{</span>
<span class="number"> 123</span>                _displayAdapter <span class="k3">=</span> activeMonitor<span class="k2">;</span> <span class="c">// Set index at current Monitor !</span>
<span class="number"> 124</span>                delWindow<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>                setWindow<span class="k2">(</span>_screenW,_screenH,_scaleWindowed,_title,_displayAdapter<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>            <span class="k2">}</span>
<span class="number"> 127</span>            setupScreen<span class="k2">(</span>_isFullScreen <span class="k3">=</span> <span class="k3">!</span>_isFullScreen<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>        <span class="k2">}</span>
<span class="number"> 129</span>
<span class="number"> 130</span>        <span class="k1">void</span> setupScreen<span class="k2">(</span><span class="k1">bool</span> isFullScreen<span class="k2">)</span>
<span class="number"> 131</span>        <span class="k2">{</span>
<span class="number"> 132</span>            _isFullScreen <span class="k3">=</span> isFullScreen<span class="k2">;</span>
<span class="number"> 133</span>            al_set_display_flag<span class="k2">(</span>_windowDisplay, ALLEGRO_FULLSCREEN_WINDOW, isFullScreen<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 134</span>
<span class="number"> 135</span>            <a href="http://www.allegro.cc/manual/ALLEGRO_MONITOR_INFO"><span class="a">ALLEGRO_MONITOR_INFO</span></a> info<span class="k2">;</span>
<span class="number"> 136</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>_displayAdapter, <span class="k3">&amp;</span>info<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 137</span>
<span class="number"> 138</span>            _currentMonitorW <span class="k3">=</span> info.x2 <span class="k3">-</span> info.x1<span class="k2">;</span>
<span class="number"> 139</span>            _currentMonitorH <span class="k3">=</span> info.y2 <span class="k3">-</span> info.y1<span class="k2">;</span>
<span class="number"> 140</span>
<span class="number"> 141</span>            <span class="c">// calculate scaling factor</span>
<span class="number"> 142</span>            _sx       <span class="k3">=</span> _currentMonitorW <span class="k3">/</span> _screenW<span class="k2">;</span>
<span class="number"> 143</span>            _sy       <span class="k3">=</span> _currentMonitorH <span class="k3">/</span> _screenH<span class="k2">;</span>
<span class="number"> 144</span>            _scaleMax    <span class="k3">=</span> std::min<span class="k2">(</span>_sx, _sy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 145</span>
<span class="number"> 146</span>            <span class="c">// calculate how much the windowBuffer should be scaled</span>
<span class="number"> 147</span>            _viewW <span class="k3">=</span> _screenW <span class="k3">*</span> _scaleMax<span class="k2">;</span>
<span class="number"> 148</span>            _viewH <span class="k3">=</span> _screenH <span class="k3">*</span> _scaleMax<span class="k2">;</span>
<span class="number"> 149</span>            _viewX <span class="k3">=</span> <span class="k2">(</span>_currentMonitorW <span class="k3">-</span> _viewW<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 150</span>            _viewY <span class="k3">=</span> <span class="k2">(</span>_currentMonitorH <span class="k3">-</span> _viewH<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 151</span>        <span class="k2">}</span>
<span class="number"> 152</span>
<span class="number"> 153</span>        <span class="k1">int</span> currentMonitor<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="c">// Find the current monitor where the window is</span>
<span class="number"> 154</span>        <span class="k2">{</span>
<span class="number"> 155</span>            <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/al_get_num_video_adapters"><span class="a">al_get_num_video_adapters</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 156</span>            <span class="k2">{</span>
<span class="number"> 157</span>                <a href="http://www.allegro.cc/manual/ALLEGRO_MONITOR_INFO"><span class="a">ALLEGRO_MONITOR_INFO</span></a> info<span class="k2">;</span>
<span class="number"> 158</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>i, <span class="k3">&amp;</span>info<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 159</span>
<span class="number"> 160</span>                <span class="k1">int</span> xWin<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 161</span>                <span class="k1">int</span> yWin<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 162</span>
<span class="number"> 163</span>                <a href="http://www.allegro.cc/manual/al_get_window_position"><span class="a">al_get_window_position</span></a><span class="k2">(</span>display, <span class="k3">&amp;</span>xWin, <span class="k3">&amp;</span>yWin<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 164</span>
<span class="number"> 165</span>                <span class="k1">if</span> <span class="k2">(</span>xWin&gt;<span class="k3">=</span>info.x1 <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 166</span>                        yWin&gt;<span class="k3">=</span>info.y1 <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 167</span>                        xWin<span class="k3">&lt;</span>info.x2 <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 168</span>                        yWin<span class="k3">&lt;</span>info.y2<span class="k2">)</span>
<span class="number"> 169</span>                    <span class="k1">return</span> i<span class="k2">;</span>
<span class="number"> 170</span>            <span class="k2">}</span>
<span class="number"> 171</span>            <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span> <span class="c">// Main/Default monitor</span>
<span class="number"> 172</span>        <span class="k2">}</span>
<span class="number"> 173</span>
<span class="number"> 174</span>        <span class="k1">void</span> pollMouse<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_MOUSE_STATE"><span class="a">ALLEGRO_MOUSE_STATE</span></a> <span class="k3">&amp;</span>mouseState<span class="k2">)</span>
<span class="number"> 175</span>        <span class="k2">{</span>
<span class="number"> 176</span>
<span class="number"> 177</span>            <span class="k1">if</span> <span class="k2">(</span>_isFullScreen<span class="k2">)</span>
<span class="number"> 178</span>            <span class="k2">{</span>
<span class="number"> 179</span>                _xMouse <span class="k3">=</span> <span class="k2">(</span>mouseState.x-_viewX<span class="k2">)</span><span class="k3">/</span> <span class="k1">float</span><span class="k2">(</span>_currentMonitorW<span class="k3">/</span>_screenW<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 180</span>                _yMouse <span class="k3">=</span> <span class="k2">(</span>mouseState.y-_viewY<span class="k2">)</span><span class="k3">/</span> <span class="k1">float</span><span class="k2">(</span>_currentMonitorH<span class="k3">/</span>_screenH<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 181</span>            <span class="k2">}</span>
<span class="number"> 182</span>            <span class="k1">else</span>
<span class="number"> 183</span>            <span class="k2">{</span>
<span class="number"> 184</span>                _xMouse <span class="k3">=</span> mouseState.x<span class="k3">/</span>_scaleWindowed<span class="k2">;</span>
<span class="number"> 185</span>                _yMouse <span class="k3">=</span> mouseState.y<span class="k3">/</span>_scaleWindowed<span class="k2">;</span>
<span class="number"> 186</span>            <span class="k2">}</span>
<span class="number"> 187</span>
<span class="number"> 188</span>            <span class="k1">if</span> <span class="k2">(</span>_xMouse <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>       _xMouse <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 189</span>            <span class="k1">if</span> <span class="k2">(</span>_xMouse <span class="k3">&gt;</span> _screenW<span class="k2">)</span> _xMouse <span class="k3">=</span> _screenW<span class="k2">;</span>
<span class="number"> 190</span>            <span class="k1">if</span> <span class="k2">(</span>_yMouse <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>       _yMouse <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 191</span>            <span class="k1">if</span> <span class="k2">(</span>_yMouse <span class="k3">&gt;</span> _screenH<span class="k2">)</span> _yMouse <span class="k3">=</span> _screenH<span class="k2">;</span>
<span class="number"> 192</span>        <span class="k2">}</span>
<span class="number"> 193</span>
<span class="number"> 194</span>        <span class="c">// Getter / Setter !</span>
<span class="number"> 195</span>
<span class="number"> 196</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span> getDisplay<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 197</span>        <span class="k2">{</span>
<span class="number"> 198</span>            <span class="k1">return</span> _windowDisplay<span class="k2">;</span>
<span class="number"> 199</span>        <span class="k2">}</span>
<span class="number"> 200</span>
<span class="number"> 201</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span> getBuffer<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 202</span>        <span class="k2">{</span>
<span class="number"> 203</span>            <span class="k1">return</span> _windowBuffer<span class="k2">;</span>
<span class="number"> 204</span>        <span class="k2">}</span>
<span class="number"> 205</span>
<span class="number"> 206</span>
<span class="number"> 207</span>        <span class="k1">bool</span> isFullScreen<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 208</span>        <span class="k2">{</span>
<span class="number"> 209</span>            <span class="k1">return</span> _isFullScreen<span class="k2">;</span>
<span class="number"> 210</span>        <span class="k2">}</span>
<span class="number"> 211</span>
<span class="number"> 212</span>        <span class="k1">int</span> getDisplayAdapter<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 213</span>        <span class="k2">{</span>
<span class="number"> 214</span>            <span class="k1">return</span> _displayAdapter<span class="k2">;</span>
<span class="number"> 215</span>        <span class="k2">}</span>
<span class="number"> 216</span>        <span class="k1">void</span> setDisplayAdapter<span class="k2">(</span><span class="k1">int</span> displayAdapter<span class="k2">)</span>
<span class="number"> 217</span>        <span class="k2">{</span>
<span class="number"> 218</span>            _displayAdapter <span class="k3">=</span> displayAdapter<span class="k2">;</span>
<span class="number"> 219</span>        <span class="k2">}</span>
<span class="number"> 220</span>        <span class="k1">int</span> getScaleWindowed<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 221</span>        <span class="k2">{</span>
<span class="number"> 222</span>            <span class="k1">return</span> _scaleWindowed<span class="k2">;</span>
<span class="number"> 223</span>        <span class="k2">}</span>
<span class="number"> 224</span>
<span class="number"> 225</span>        <span class="k1">int</span> getScaleMax<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 226</span>        <span class="k2">{</span>
<span class="number"> 227</span>            <span class="k1">return</span> _scaleMax<span class="k2">;</span>
<span class="number"> 228</span>        <span class="k2">}</span>
<span class="number"> 229</span>        <span class="k1">int</span> getViewX<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 230</span>        <span class="k2">{</span>
<span class="number"> 231</span>            <span class="k1">return</span> _viewX<span class="k2">;</span>
<span class="number"> 232</span>        <span class="k2">}</span>
<span class="number"> 233</span>        <span class="k1">int</span> getViewY<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 234</span>        <span class="k2">{</span>
<span class="number"> 235</span>            <span class="k1">return</span> _viewY<span class="k2">;</span>
<span class="number"> 236</span>        <span class="k2">}</span>
<span class="number"> 237</span>        <span class="k1">int</span> getViewW<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 238</span>        <span class="k2">{</span>
<span class="number"> 239</span>            <span class="k1">return</span> _viewW<span class="k2">;</span>
<span class="number"> 240</span>        <span class="k2">}</span>
<span class="number"> 241</span>        <span class="k1">int</span> getViewH<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 242</span>        <span class="k2">{</span>
<span class="number"> 243</span>            <span class="k1">return</span> _viewH<span class="k2">;</span>
<span class="number"> 244</span>        <span class="k2">}</span>
<span class="number"> 245</span>
<span class="number"> 246</span>        <span class="k1">int</span> getScreenW<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 247</span>        <span class="k2">{</span>
<span class="number"> 248</span>            <span class="k1">return</span> _screenW<span class="k2">;</span>
<span class="number"> 249</span>        <span class="k2">}</span>
<span class="number"> 250</span>        <span class="k1">int</span> getScreenH<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 251</span>        <span class="k2">{</span>
<span class="number"> 252</span>            <span class="k1">return</span> _screenH<span class="k2">;</span>
<span class="number"> 253</span>        <span class="k2">}</span>
<span class="number"> 254</span>
<span class="number"> 255</span>        <span class="k1">int</span> getCurrentMonitorW<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 256</span>        <span class="k2">{</span>
<span class="number"> 257</span>            <span class="k1">return</span> _currentMonitorW<span class="k2">;</span>
<span class="number"> 258</span>        <span class="k2">}</span>
<span class="number"> 259</span>        <span class="k1">int</span> getCurrentMonitorH<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 260</span>        <span class="k2">{</span>
<span class="number"> 261</span>            <span class="k1">return</span> _currentMonitorH<span class="k2">;</span>
<span class="number"> 262</span>        <span class="k2">}</span>
<span class="number"> 263</span>
<span class="number"> 264</span>        <span class="k1">float</span> getMouseX<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 265</span>        <span class="k2">{</span>
<span class="number"> 266</span>            <span class="k1">return</span> _xMouse<span class="k2">;</span>
<span class="number"> 267</span>        <span class="k2">}</span>
<span class="number"> 268</span>        <span class="k1">float</span> getMouseY<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 269</span>        <span class="k2">{</span>
<span class="number"> 270</span>            <span class="k1">return</span> _yMouse<span class="k2">;</span>
<span class="number"> 271</span>        <span class="k2">}</span>
<span class="number"> 272</span>
<span class="number"> 273</span>    protected:
<span class="number"> 274</span>
<span class="number"> 275</span>        <span class="c">// Window</span>
<span class="number"> 276</span>        <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> _title<span class="k2">;</span>
<span class="number"> 277</span>        <span class="k1">int</span> _displayAdapter<span class="k2">;</span>
<span class="number"> 278</span>        <span class="k1">bool</span> _isFullScreen<span class="k2">;</span>
<span class="number"> 279</span>        <span class="k1">int</span> _screenW<span class="k2">;</span>
<span class="number"> 280</span>        <span class="k1">int</span> _screenH<span class="k2">;</span>
<span class="number"> 281</span>        <span class="k1">int</span> _scaleWindowed<span class="k2">;</span>
<span class="number"> 282</span>
<span class="number"> 283</span>        <span class="c">// Screen</span>
<span class="number"> 284</span>        <span class="k1">int</span> _sx<span class="k2">;</span>
<span class="number"> 285</span>        <span class="k1">int</span> _sy<span class="k2">;</span>
<span class="number"> 286</span>        <span class="k1">int</span> _scaleMax<span class="k2">;</span>
<span class="number"> 287</span>        <span class="k1">int</span> _viewW<span class="k2">;</span>
<span class="number"> 288</span>        <span class="k1">int</span> _viewH<span class="k2">;</span>
<span class="number"> 289</span>        <span class="k1">int</span> _viewX<span class="k2">;</span>
<span class="number"> 290</span>        <span class="k1">int</span> _viewY<span class="k2">;</span>
<span class="number"> 291</span>
<span class="number"> 292</span>        <span class="c">// Monitor</span>
<span class="number"> 293</span>        <span class="k1">int</span> _currentMonitorW<span class="k2">;</span>
<span class="number"> 294</span>        <span class="k1">int</span> _currentMonitorH<span class="k2">;</span>
<span class="number"> 295</span>
<span class="number"> 296</span>        <span class="c">// Mouse</span>
<span class="number"> 297</span>        <span class="k1">float</span> _xMouse<span class="k2">;</span>
<span class="number"> 298</span>        <span class="k1">float</span> _yMouse<span class="k2">;</span>
<span class="number"> 299</span>
<span class="number"> 300</span>    private:
<span class="number"> 301</span>
<span class="number"> 302</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span> _windowDisplay<span class="k2">;</span>
<span class="number"> 303</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span> _windowBuffer<span class="k2">;</span>
<span class="number"> 304</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 305</span><span class="p">#endif // WINDOW_H_INCLUDED</span>
</div></div><p>

MultiMonitor.cpp
</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="p">#include &lt;iostream&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;vector&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;memory&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">   7</span><span class="p">#include &lt;allegro5/allegro_windows.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_font.h&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;allegro5/allegro_windows.h&gt;</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="p">#include "Window.h"</span>
<span class="number">  13</span>
<span class="number">  14</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  15</span><span class="k2">{</span>
<span class="number">  16</span><span class="c">// --- Local Variables ---</span>
<span class="number">  17</span>    <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> title<span class="k2">(</span><span class="s">"--- Multi Monitor Allegro 5 ---"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span>    <span class="k1">int</span> screenW<span class="k2">(</span><span class="n">320</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span>    <span class="k1">int</span> screenH<span class="k2">(</span><span class="n">180</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  20</span>    <span class="k1">int</span> scale<span class="k2">(</span><span class="n">4</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  21</span>    <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> fontFile<span class="k2">(</span><span class="s">"Kyrou.ttf"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  22</span>    <span class="k1">int</span> fontSize<span class="k2">(</span><span class="n">8</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  23</span>
<span class="number">  24</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span> mainFont<span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_MOUSE_STATE"><span class="a">ALLEGRO_MOUSE_STATE</span></a> _mouseState<span class="k2">;</span>
<span class="number">  26</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> _keyState<span class="k2">;</span>
<span class="number">  27</span>
<span class="number">  28</span>    <span class="k1">bool</span> _quit<span class="k2">(</span><span class="k1">false</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  29</span>    <span class="k1">bool</span> _keyFullScreen<span class="k2">(</span><span class="k1">false</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>    <span class="k1">bool</span> _keyTabScreen<span class="k2">(</span><span class="k1">false</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>
<span class="number">  32</span>    Window _window<span class="k2">;</span>
<span class="number">  33</span>
<span class="number">  34</span><span class="c">// --- Init ---</span>
<span class="number">  35</span>    _window.init<span class="k2">(</span>screenW,screenH,scale,title<span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span>
<span class="number">  37</span><span class="c">// --- Load content ---</span>
<span class="number">  38</span>    mainFont <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>fontFile,fontSize,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>mainFont<span class="k2">)</span> _quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  40</span>
<span class="number">  41</span><span class="c">// --- Begin Main loop ---</span>
<span class="number">  42</span>    <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>_quit<span class="k2">)</span>
<span class="number">  43</span>    <span class="k2">{</span>
<span class="number">  44</span>    <span class="c">// --- Input ---</span>
<span class="number">  45</span>
<span class="number">  46</span>        <span class="c">// Keyboard</span>
<span class="number">  47</span>        <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>_keyState<span class="k2">)</span><span class="k2">;</span>
<span class="number">  48</span>
<span class="number">  49</span>        <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>_keyState, ALLEGRO_KEY_ESCAPE<span class="k2">)</span><span class="k2">)</span> <span class="c">// Keyboard &lt;Escape&gt; for quit !</span>
<span class="number">  50</span>            _quit<span class="k3">=</span><span class="k1">true</span><span class="k2">;</span>
<span class="number">  51</span>
<span class="number">  52</span>        <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>_keyState, ALLEGRO_KEY_TAB<span class="k2">)</span><span class="k2">)</span> _keyTabScreen <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  53</span>        <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>_keyState, ALLEGRO_KEY_F<span class="k2">)</span><span class="k2">)</span>   _keyFullScreen <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  54</span>
<span class="number">  55</span>
<span class="number">  56</span>        <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>_keyState, ALLEGRO_KEY_TAB<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>_keyTabScreen<span class="k2">)</span> <span class="c">// Keyboard &lt;TAB&gt; for switch monitor !</span>
<span class="number">  57</span>        <span class="k2">{</span>
<span class="number">  58</span>            _keyTabScreen <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  59</span>            _window.switchMonitor<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>        <span class="k2">}</span>
<span class="number">  61</span>        <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>_keyState, ALLEGRO_KEY_F<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>_keyFullScreen<span class="k2">)</span> <span class="c">// Keyboard &lt;F&gt; to enter fullscreen !</span>
<span class="number">  62</span>        <span class="k2">{</span>
<span class="number">  63</span>            _keyFullScreen <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  64</span>            _window.toggleFullScreen<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  65</span>        <span class="k2">}</span>
<span class="number">  66</span>
<span class="number">  67</span>        <span class="c">// Mouse</span>
<span class="number">  68</span>        <a href="http://www.allegro.cc/manual/al_get_mouse_state"><span class="a">al_get_mouse_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>_mouseState<span class="k2">)</span><span class="k2">;</span>
<span class="number">  69</span>        _window.pollMouse<span class="k2">(</span>_mouseState<span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>
<span class="number">  71</span>    <span class="c">// --- Render ---</span>
<span class="number">  72</span>
<span class="number">  73</span>        _window.beginRender<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>        <span class="k2">{</span>
<span class="number">  75</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><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">25</span>,<span class="n">30</span>,<span class="n">50</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>
<span class="number">  77</span>            <span class="k1">int</span> _windowX<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  78</span>            <span class="k1">int</span> _windowY<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  79</span>
<span class="number">  80</span>            <a href="http://www.allegro.cc/manual/al_get_window_position"><span class="a">al_get_window_position</span></a><span class="k2">(</span>_window.getDisplay<span class="k2">(</span><span class="k2">)</span>, <span class="k3">&amp;</span>_windowX, <span class="k3">&amp;</span>_windowY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>
<span class="number">  82</span>            <span class="k1">int</span> _windowW<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>_window.getDisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</span>            <span class="k1">int</span> _windowH<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>_window.getDisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</span>
<span class="number">  85</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>mainFont, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">25</span>,<span class="n">250</span>,<span class="n">200</span><span class="k2">)</span>, <span class="n">200</span>, <span class="n">2</span>, <span class="n">0</span>,
<span class="number">  86</span>                          <span class="s">"_isFullScreen : %i"</span>, _window.isFullScreen<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>
<span class="number">  88</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>mainFont, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">25</span>,<span class="n">250</span>,<span class="n">200</span><span class="k2">)</span>, <span class="n">200</span>, <span class="n">22</span>, <span class="n">0</span>,
<span class="number">  89</span>                          <span class="s">"_viewX : %i"</span>, _window.getViewX<span class="k2">(</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span>
<span class="number">  91</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>mainFont, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">25</span>,<span class="n">250</span>,<span class="n">200</span><span class="k2">)</span>, <span class="n">200</span>, <span class="n">32</span>, <span class="n">0</span>,
<span class="number">  92</span>                          <span class="s">"_viewY : %i"</span>, _window.getViewY<span class="k2">(</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>
<span class="number">  94</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>mainFont, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">25</span>,<span class="n">250</span>,<span class="n">200</span><span class="k2">)</span>, <span class="n">200</span>, <span class="n">42</span>, <span class="n">0</span>,
<span class="number">  95</span>                          <span class="s">"_scaleMax : %i"</span>, _window.getScaleMax<span class="k2">(</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>
<span class="number">  97</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>mainFont, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">25</span>,<span class="n">250</span>,<span class="n">200</span><span class="k2">)</span>, <span class="n">200</span>, <span class="n">52</span>, <span class="n">0</span>,
<span class="number">  98</span>                          <span class="s">"_viewW : %i"</span>, _window.getViewW<span class="k2">(</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>mainFont, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">25</span>,<span class="n">250</span>,<span class="n">200</span><span class="k2">)</span>, <span class="n">200</span>, <span class="n">62</span>, <span class="n">0</span>,
<span class="number"> 100</span>                          <span class="s">"_viewH : %i"</span>, _window.getViewH<span class="k2">(</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 101</span>
<span class="number"> 102</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>mainFont, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">205</span>,<span class="n">250</span>,<span class="n">200</span><span class="k2">)</span>, <span class="n">4</span>, <span class="n">2</span>, <span class="n">0</span>,
<span class="number"> 103</span>                          <span class="s">"currentMonitor : %i"</span>, _window.currentMonitor<span class="k2">(</span>_window.getDisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 104</span>
<span class="number"> 105</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>mainFont, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">205</span>,<span class="n">250</span>,<span class="n">200</span><span class="k2">)</span>, <span class="n">4</span>, <span class="n">12</span>, <span class="n">0</span>,
<span class="number"> 106</span>                          <span class="s">"_displayAdapter : %i"</span>, _window.getDisplayAdapter<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 107</span>
<span class="number"> 108</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>mainFont, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">250</span>,<span class="n">120</span>,<span class="n">50</span><span class="k2">)</span>, <span class="n">4</span>, <span class="n">36</span>, <span class="n">0</span>,
<span class="number"> 109</span>                          <span class="s">"Window Pos : %i , %i"</span>, _windowX, _windowY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</span>
<span class="number"> 111</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>mainFont, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">250</span>,<span class="n">250</span><span class="k2">)</span>, <span class="n">4</span>, <span class="n">46</span>, <span class="n">0</span>,
<span class="number"> 112</span>                          <span class="s">"Window Size : %i , %i"</span>, _windowW, _windowH<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 113</span>
<span class="number"> 114</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>mainFont, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">50</span>,<span class="n">150</span>,<span class="n">250</span><span class="k2">)</span>, <span class="n">4</span>, <span class="n">106</span>, <span class="n">0</span>,
<span class="number"> 115</span>                          <span class="s">"Mouse Pos : %i , %i"</span>, <span class="k1">int</span><span class="k2">(</span>_window.getMouseX<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>, <span class="k1">int</span><span class="k2">(</span>_window.getMouseY<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>
<span class="number"> 117</span>            <a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span><span class="n">0</span>,_window.getMouseY<span class="k2">(</span><span class="k2">)</span><span class="k3">+</span>.<span class="n">5</span>,
<span class="number"> 118</span>                         screenW,_window.getMouseY<span class="k2">(</span><span class="k2">)</span><span class="k3">+</span>.<span class="n">5</span>,
<span class="number"> 119</span>                         <a href="http://www.allegro.cc/manual/al_map_rgba"><span class="a">al_map_rgba</span></a><span class="k2">(</span><span class="n">55</span>,<span class="n">155</span>,<span class="n">100</span>,<span class="n">25</span><span class="k2">)</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>
<span class="number"> 121</span>            <a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span>_window.getMouseX<span class="k2">(</span><span class="k2">)</span><span class="k3">+</span>.<span class="n">5</span>,<span class="n">0</span>,
<span class="number"> 122</span>                         _window.getMouseX<span class="k2">(</span><span class="k2">)</span><span class="k3">+</span>.<span class="n">5</span>,screenH,
<span class="number"> 123</span>                         <a href="http://www.allegro.cc/manual/al_map_rgba"><span class="a">al_map_rgba</span></a><span class="k2">(</span><span class="n">55</span>,<span class="n">155</span>,<span class="n">100</span>,<span class="n">25</span><span class="k2">)</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 124</span>        <span class="k2">}</span>
<span class="number"> 125</span>        _window.endRender<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>
<span class="number"> 127</span>    <span class="k2">}</span>
<span class="number"> 128</span><span class="c">// --- End Main loop ---</span>
<span class="number"> 129</span>
<span class="number"> 130</span><span class="c">// --- Done ---</span>
<span class="number"> 131</span>
<span class="number"> 132</span>    _window.done<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>    <a href="http://www.allegro.cc/manual/al_destroy_font"><span class="a">al_destroy_font</span></a><span class="k2">(</span>mainFont<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 134</span>
<span class="number"> 135</span><span class="c">// --- Quit program !</span>
<span class="number"> 136</span>    <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">(</span><span class="n">0</span>,<span class="s">"- Program terminated normally !\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 137</span><span class="k2">}</span>
</div></div><p>
You can test here : <a href="https://www.allegro.cc/files/attachment/610653">https://www.allegro.cc/files/attachment/610653</a></p><p>TAB to switch monitor, F for fullscreen !
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SilverTES)</author>
		<pubDate>Wed, 30 Nov 2016 05:39:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>FWIW, Allegro would use HideWindow and ShowWindow in it&#39;s windows code, so there&#39;s no reason you shouldn&#39;t either. That&#39;s what the Win32 API is there for.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 01 Dec 2016 02:16:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>But when I create more one ALLEGRO_DISPLAY, one of display is very slow like 5fps !! </p><p>example something like this:
</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="k2">[</span><span class="n">2</span><span class="k2">]</span>
<span class="number">  2</span>...
<span class="number">  3</span>...
<span class="number">  4</span><span class="k1">while</span> <span class="k2">(</span>_quit<span class="k2">)</span>
<span class="number">  5</span><span class="k2">{</span>
<span class="number">  6</span>    <span class="c">// update :</span>
<span class="number">  7</span>    <span class="k1">if</span> <span class="k2">(</span>_switchMonitor<span class="k2">)</span>
<span class="number">  8</span>    <span class="k2">{</span>
<span class="number">  9</span>       <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">&lt;</span><span class="n">2</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 10</span>       <span class="k2">{</span>
<span class="number"> 11</span>           HWND hwnd <a href="http://www.allegro.cc/manual/al_get_win_window_handle"><span class="a">al_get_win_window_handle</span></a><span class="k2">(</span>_display<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>           <span class="k1">if</span> <span class="k2">(</span>i <span class="k3">!</span><span class="k3">=</span> _selectedDisplay<span class="k2">)</span>
<span class="number"> 13</span>              ShowWindow <span class="k2">(</span>hwnd, SW_HIDE<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>           <span class="k1">else</span>
<span class="number"> 15</span>              ShowWindow <span class="k2">(</span>hwnd, SW_SHOW<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>       <span class="k2">}</span>
<span class="number"> 17</span>    <span class="k2">}</span>
<span class="number"> 18</span>    ...
<span class="number"> 19</span>    ...
<span class="number"> 20</span>    <span class="c">// render :</span>
<span class="number"> 21</span>    ...
<span class="number"> 22</span>    ...
<span class="number"> 23</span>    
<span class="number"> 24</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>_selectedDisplay<span class="k2">]</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</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"> 26</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SilverTES)</author>
		<pubDate>Thu, 01 Dec 2016 15:09:17 +0000</pubDate>
	</item>
</rss>
