<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Hardware cursor enable / disable.</title>
		<link>http://www.allegro.cc/forums/view/587130</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 23 Aug 2006 02:55:38 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Ok, If I run my game in a windowed mode and I want to display the hardware cursor I can do:</p><div class="source-code snippet"><div class="inner"><pre>   <a href="http://www.allegro.cc/manual/enable_hardware_cursor" target="_blank"><span class="a">enable_hardware_cursor</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
   <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

And it appears and works fine.</p><p>However, when I want to hide the mouse cursor so I can return to the game I can&#39;t seem to get rid of the OS cursor!</p><p>I&#39;m currently trying:
</p><div class="source-code snippet"><div class="inner"><pre>   <a href="http://www.allegro.cc/manual/select_mouse_cursor" target="_blank"><span class="a">select_mouse_cursor</span></a><span class="k2">(</span>MOUSE_CURSOR_NONE<span class="k2">)</span><span class="k2">;</span>
   <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">;</span>
   <a href="http://www.allegro.cc/manual/scare_mouse" target="_blank"><span class="a">scare_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
   <a href="http://www.allegro.cc/manual/disable_hardware_cursor" target="_blank"><span class="a">disable_hardware_cursor</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
And I&#39;m tried various combinations but the hardware cursor is still there. Does anyone have any idea?</p><p>Allegro 4.2.0, Windows XP, using AllegroGL 0.4.0 and OpenLayer 2.0</p><p>Thanks!<br />Rich.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Sun, 20 Aug 2006 17:48:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
?</p><p>Pete
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Sun, 20 Aug 2006 17:53:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Try:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

Also, in case you do not want to fall back to the software cursor when no HW cursor is available, it&#39;s simpler to use show_os_cursor() instead of enable_hardware_cursor()/show_mouse().
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Sun, 20 Aug 2006 17:54:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Elias:</p><p>If that works, then <i>I&#39;m</i> taking the credit <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>Pete
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Sun, 20 Aug 2006 18:16:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Nope, I already tried show_mouse(NULL). I don&#39;t know whether because I am using AllegroGL this is relevant?</p><p>Any more ideas?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Sun, 20 Aug 2006 20:13:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Nope, I already tried show_mouse(NULL).
</p></div></div><p>

Elias, that was terrible advice, you idiot. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>Pete</p><p>ps. That mouse code is platform dependent, so we really need a Windows person to determine what the problem is.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Sun, 20 Aug 2006 20:35:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This is the disable_hardware_cursor section (mouse.c):</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">/* disable_hardware_cursor:</span></td></tr><tr><td class="number">2</td><td><span class="c"> *  disables the hardware cursor on platforms where this interferes with </span></td></tr><tr><td class="number">3</td><td><span class="c"> *  mickeys and disables system cursors.</span></td></tr><tr><td class="number">4</td><td><span class="c"> */</span></td></tr><tr><td class="number">5</td><td><span class="k1">void</span> <a href="http://www.allegro.cc/manual/disable_hardware_cursor" target="_blank"><span class="a">disable_hardware_cursor</span></a><span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">6</td><td><span class="k2">{</span></td></tr><tr><td class="number">7</td><td>   <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>mouse_driver<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>mouse_driver-&gt;enable_hardware_cursor<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>      mouse_driver-&gt;enable_hardware_cursor<span class="k2">(</span>FALSE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>      allow_system_cursor <span class="k3">=</span> FALSE<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>      <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/is_same_bitmap" target="_blank"><span class="a">is_same_bitmap</span></a><span class="k2">(</span>_mouse_screen, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>         <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp <span class="k3">=</span> _mouse_screen<span class="k2">;</span></td></tr><tr><td class="number">12</td><td>         <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>         <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>bmp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">15</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">16</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

However, the enable_hardware_cursor in the windows driver is empty (wmouse.c):
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">/* mouse_directx_enable_hardware_cursor:</span>
<span class="c"> *  enable the hardware cursor; actually a no-op in Windows, but we need to</span>
<span class="c"> *  put something in the vtable.</span>
<span class="c"> */</span>
<span class="k1">static</span> <span class="k1">void</span> mouse_directx_enable_hardware_cursor<span class="k2">(</span><span class="k1">int</span> mode<span class="k2">)</span>
<span class="k2">{</span>
   <span class="c">/* Do nothing */</span>
   <span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>mode<span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

So it seems only allow_system_cursor = FALSE; is really being changed and this is used in show_mouse():
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">/* show_mouse:</span></td></tr><tr><td class="number">2</td><td><span class="c"> *  Tells Allegro to display a mouse pointer. This only works when the timer </span></td></tr><tr><td class="number">3</td><td><span class="c"> *  module is active. The mouse pointer will be drawn onto the bitmap bmp, </span></td></tr><tr><td class="number">4</td><td><span class="c"> *  which should normally be the hardware screen. To turn off the mouse </span></td></tr><tr><td class="number">5</td><td><span class="c"> *  pointer, which you must do before you draw anything onto the screen, call </span></td></tr><tr><td class="number">6</td><td><span class="c"> *  show_mouse(NULL). If you forget to turn off the mouse pointer when </span></td></tr><tr><td class="number">7</td><td><span class="c"> *  drawing something, the SVGA bank switching code will become confused and </span></td></tr><tr><td class="number">8</td><td><span class="c"> *  will produce garbage all over the screen.</span></td></tr><tr><td class="number">9</td><td><span class="c"> */</span></td></tr><tr><td class="number">10</td><td><span class="k1">void</span> <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp<span class="k2">)</span></td></tr><tr><td class="number">11</td><td><span class="k2">{</span></td></tr><tr><td class="number">12</td><td>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>mouse_driver<span class="k2">)</span></td></tr><tr><td class="number">13</td><td>      <span class="k1">return</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td>   <a href="http://www.allegro.cc/manual/remove_int" target="_blank"><span class="a">remove_int</span></a><span class="k2">(</span>mouse_move<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td>   <span class="c">/* Remove the mouse cursor */</span></td></tr><tr><td class="number">18</td><td>   <span class="k1">if</span> <span class="k2">(</span>_mouse_screen<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">19</td><td>      <a href="http://www.allegro.cc/manual/acquire_bitmap" target="_blank"><span class="a">acquire_bitmap</span></a><span class="k2">(</span>_mouse_screen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td>      <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/gfx_capabilities" target="_blank"><span class="a">gfx_capabilities</span></a> <span class="k3">&amp;</span> GFX_HW_CURSOR<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">22</td><td>   gfx_driver-&gt;hide_mouse<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>   <a href="http://www.allegro.cc/manual/gfx_capabilities" target="_blank"><span class="a">gfx_capabilities</span></a> <span class="k3">&amp;</span><span class="k3">=</span> ~<span class="k2">(</span>GFX_HW_CURSOR<span class="k3">|</span>GFX_SYSTEM_CURSOR<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>    hw_cursor_dirty <span class="k3">=</span> TRUE<span class="k2">;</span></td></tr><tr><td class="number">25</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">26</td><td>      <span class="k1">else</span></td></tr><tr><td class="number">27</td><td>   draw_mouse<span class="k2">(</span>TRUE, FALSE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td>      <a href="http://www.allegro.cc/manual/release_bitmap" target="_blank"><span class="a">release_bitmap</span></a><span class="k2">(</span>_mouse_screen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">31</td><td>&#160;</td></tr><tr><td class="number">32</td><td>   _mouse_screen <span class="k3">=</span> bmp<span class="k2">;</span></td></tr><tr><td class="number">33</td><td>&#160;</td></tr><tr><td class="number">34</td><td>   <span class="k1">if</span> <span class="k2">(</span>bmp <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>current_cursor <span class="k3">!</span><span class="k3">=</span> MOUSE_CURSOR_NONE<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">35</td><td>      <a href="http://www.allegro.cc/manual/acquire_bitmap" target="_blank"><span class="a">acquire_bitmap</span></a><span class="k2">(</span>_mouse_screen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>&#160;</td></tr><tr><td class="number">37</td><td>      <span class="c">/* Default system cursor? */</span></td></tr><tr><td class="number">38</td><td>      <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>current_cursor <span class="k3">!</span><span class="k3">=</span> MOUSE_CURSOR_ALLEGRO<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> allow_system_cursor<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">39</td><td>         <span class="k1">if</span> <span class="k2">(</span>mouse_driver <span class="k3">&amp;</span><span class="k3">&amp;</span> mouse_driver-&gt;select_system_cursor<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">40</td><td>            use_system_cursor <span class="k3">=</span> mouse_driver-&gt;select_system_cursor<span class="k2">(</span>current_cursor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">41</td><td>            <span class="k1">if</span> <span class="k2">(</span>use_system_cursor<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">42</td><td>               <a href="http://www.allegro.cc/manual/gfx_capabilities" target="_blank"><span class="a">gfx_capabilities</span></a> <span class="k3">|</span><span class="k3">=</span> GFX_HW_CURSOR<span class="k3">|</span>GFX_SYSTEM_CURSOR<span class="k2">;</span></td></tr><tr><td class="number">43</td><td>               hw_cursor_dirty <span class="k3">=</span> FALSE<span class="k2">;</span></td></tr><tr><td class="number">44</td><td>               got_hw_cursor <span class="k3">=</span> TRUE<span class="k2">;</span></td></tr><tr><td class="number">45</td><td>            <span class="k2">}</span></td></tr><tr><td class="number">46</td><td>         <span class="k2">}</span></td></tr><tr><td class="number">47</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">48</td><td>      <span class="k1">else</span> <span class="k2">{</span></td></tr><tr><td class="number">49</td><td>         use_system_cursor <span class="k3">=</span> FALSE<span class="k2">;</span></td></tr><tr><td class="number">50</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">51</td><td>&#160;</td></tr><tr><td class="number">52</td><td>      <span class="c">/* Custom hardware cursor? */</span></td></tr><tr><td class="number">53</td><td>      <span class="k1">if</span> <span class="k2">(</span>hw_cursor_dirty<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">54</td><td>   got_hw_cursor <span class="k3">=</span> FALSE<span class="k2">;</span></td></tr><tr><td class="number">55</td><td>&#160;</td></tr><tr><td class="number">56</td><td>   <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>gfx_driver<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>gfx_driver-&gt;set_mouse_sprite<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><span class="k3">!</span>_dispsw_status<span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">57</td><td>      <span class="k1">if</span> <span class="k2">(</span>gfx_driver-&gt;set_mouse_sprite<span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_sprite" target="_blank"><span class="a">mouse_sprite</span></a>, <a href="http://www.allegro.cc/manual/mouse_x_focus" target="_blank"><span class="a">mouse_x_focus</span></a>, <a href="http://www.allegro.cc/manual/mouse_y_focus" target="_blank"><span class="a">mouse_y_focus</span></a><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">58</td><td>         got_hw_cursor <span class="k3">=</span> TRUE<span class="k2">;</span></td></tr><tr><td class="number">59</td><td>&#160;</td></tr><tr><td class="number">60</td><td>   hw_cursor_dirty <span class="k3">=</span> FALSE<span class="k2">;</span></td></tr><tr><td class="number">61</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">62</td><td>      </td></tr><tr><td class="number">63</td><td>      <span class="c">/* Try to display hardware (custom or system) cursor */</span></td></tr><tr><td class="number">64</td><td>      <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>got_hw_cursor<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/is_same_bitmap" target="_blank"><span class="a">is_same_bitmap</span></a><span class="k2">(</span>bmp, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">65</td><td>   <span class="k1">if</span> <span class="k2">(</span>gfx_driver-&gt;show_mouse<span class="k2">(</span>bmp, mx<span class="k3">=</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a>, my<span class="k3">=</span><a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">66</td><td>      <a href="http://www.allegro.cc/manual/gfx_capabilities" target="_blank"><span class="a">gfx_capabilities</span></a> <span class="k3">|</span><span class="k3">=</span> GFX_HW_CURSOR<span class="k2">;</span></td></tr><tr><td class="number">67</td><td>&#160;</td></tr><tr><td class="number">68</td><td>      <span class="c">/* Draw cursor manually if we can't do that */</span></td></tr><tr><td class="number">69</td><td>      <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/gfx_capabilities" target="_blank"><span class="a">gfx_capabilities</span></a> <span class="k3">&amp;</span> GFX_HW_CURSOR<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">70</td><td>   draw_mouse<span class="k2">(</span>FALSE, TRUE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>         use_system_cursor <span class="k3">=</span> FALSE<span class="k2">;</span></td></tr><tr><td class="number">72</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">73</td><td>&#160;</td></tr><tr><td class="number">74</td><td>      <a href="http://www.allegro.cc/manual/release_bitmap" target="_blank"><span class="a">release_bitmap</span></a><span class="k2">(</span>_mouse_screen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>&#160;</td></tr><tr><td class="number">76</td><td>      <a href="http://www.allegro.cc/manual/install_int" target="_blank"><span class="a">install_int</span></a><span class="k2">(</span>mouse_move, <span class="n">10</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">78</td><td>   <span class="k1">else</span> <span class="k2">{</span></td></tr><tr><td class="number">79</td><td>      <span class="k1">if</span> <span class="k2">(</span>mouse_driver-&gt;timer_poll<span class="k2">)</span> </td></tr><tr><td class="number">80</td><td>   <a href="http://www.allegro.cc/manual/install_int" target="_blank"><span class="a">install_int</span></a><span class="k2">(</span>mouse_move, <span class="n">10</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">81</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">82</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Ok. Show mouse calls:<br /><span class="source-code">gfx_driver-&gt;hide_mouse<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span><br />But I can&#39;t find any entry in wmouse.c for this..?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Sun, 20 Aug 2006 20:45:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My problem is I can&#39;t make the hardware cursor disappear on the Mac in fullscreen.  It seems the Mac Allegro fullscreen driver shows the hardware cursor regardless of what you try to tell it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Runesabre)</author>
		<pubDate>Mon, 21 Aug 2006 03:07:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
If that works, then I&#39;m taking the credit <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>Elias, that was terrible advice, you idiot. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div></div><p>

Yes, yes, now I see how you thought that out <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>My guess is, the AllegroGL GFX_DRIVER needs the methods show_mouse and hide_mouse filled in. And we also need to find out why the current implementation doesn&#39;t work at all with fullscreen mode in Windows - I&#39;m sure I have seen games use the mouse in fullscreen mode, so there should be a way to do it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Mon, 21 Aug 2006 13:56:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
I&#39;ve had to use a software cursor in the end, which is not ideal and of course looks different from the OS cursor.</p><p>I don&#39;t have time to try to add the changes myself or wait for them to be done. But these kind of things do really need doing..
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Mon, 21 Aug 2006 14:30:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
However, the enable_hardware_cursor in the windows driver is empty (wmouse.c):
</p></div></div><p>
Right; that&#39;s because Windows doesn&#39;t need anything special to enable the hardware cursor (or rather, the hardware cursor in Windows doesn&#39;t interfere with get_mouse_mickeys() as it does in X11, where get_mouse_mickeys() causes the hardware cursor to be trapped in the window).</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
And we also need to find out why the current implementation doesn&#39;t work at all with fullscreen mode in Windows
</p></div></div><p>
Because Windows cannot display a mouse cursor in a full-screen DirectX application. At least the normal Windows way for setting the mouse cursor doesn&#39;t do anything in that case. This is documented, so it probably doesn&#39;t count as a bug.<br />If there is a DirectX way of doing this, I couldn&#39;t find it when I looked into this.<br />EDIT: I checked MSDN, several tutorials and SDL at the time; none of them gave a clue that it could be done.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Mon, 21 Aug 2006 14:52:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
I did try using the MSN commands ShowCursor(FALSE), ChangeCursor, but none of them seemed to have any effect. I suspect Allegro is rechanging the values.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Mon, 21 Aug 2006 14:59:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Because Windows cannot display a mouse cursor in a full-screen DirectX application. At least the normal Windows way for setting the mouse cursor doesn&#39;t do anything in that case. This is documented, so it probably doesn&#39;t count as a bug.<br />If there is a DirectX way of doing this, I couldn&#39;t find it when I looked into this.<br />EDIT: I checked MSDN, several tutorials and SDL at the time; none of them gave a clue that it could be done.
</p></div></div><p>
Hm, I think I remember, I got the mouse cursor displayed in some fullscreen app when I did in fact not even want it. But well, probably makes sense in some way, the HW cursor probably interferes with the full control you get over the GFX card with DX. And maybe it changes in Vista.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Tue, 22 Aug 2006 21:56:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s strange because bugs.txt from AllegroGL says:
</p><ul><li><p>On Win32 platforms, the mouse cursor (Windows style) is not always hidden<br />  in fullscreen mode.<br />  Workaround while the bug is not fixed : call &#39;set_gfx_mode(GFX_TEXT,0,0,0,0)&#39;<br />  before the actual &#39;set_gfx_mode&#39; (workaround suggested by Martin Dusek).</p></li></ul><p>I guess bugs.txt can be declared deprecated <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Milan Mimica)</author>
		<pubDate>Wed, 23 Aug 2006 00:18:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I did try using the MSN commands ShowCursor(FALSE), ChangeCursor, but none of them seemed to have any effect. I suspect Allegro is rechanging the values.
</p></div></div><p>
No, reread what I said: it doesn&#39;t work. I tried the exact same thing when I implemented the hardware cursor for Windows a year (two years?) ago.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Wed, 23 Aug 2006 02:39:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I must have missed your edit then..
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Wed, 23 Aug 2006 02:44:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You were quick then, since I added my edit almost immediately. I actually thought it was a redundant addition... apparently not though <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>(Redundant because we of course all do our homework before saying that X cannot do Y, right?)</p><p>EDIT: On fullscreen OpenGL, that may very well be a different issue (I have really no idea). My understanding is that Windows cannot display a cursor on a fullscreen DirectX surface.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Wed, 23 Aug 2006 02:48:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
So aside from the fullscreen cursor issue, we have no idea why we cannot remove the hardware cursor from the screen in windowed mode after being turned on?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Wed, 23 Aug 2006 02:55:38 +0000</pubDate>
	</item>
</rss>
