<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>[OpenGL] Draw in 2d after drawing in 3d</title>
		<link>http://www.allegro.cc/forums/view/586476</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 17 Jul 2006 04:54:09 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What I&#39;m wondering, is let&#39;s say the 3d scene is drawn.  Is there a way to then draw in 2d flat on the screen?  For example, if I wanted to have a HUD or mouse cursor over the scene, could I just draw those straight to the screen flat?</p><p>I know I could figure out all the business as to where those things would be in 3d space and constantly move them with the camera, but it&#39;d be a lot easier if there was just a way to draw it 2d after the 3d was done <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrknPhoenix)</author>
		<pubDate>Fri, 14 Jul 2006 23:37:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>After drawing the 3d scene, simply reset the modelview and projection matrix, then set an ortho mode (glOrtho).
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>glMatrixMode<span class="k2">(</span>GL_PROJECTION<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td>glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">3</td><td>gluPerspective<span class="k2">(</span><span class="n">45</span>.<span class="n">0f</span>, <span class="k1">float</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a><span class="k2">)</span><span class="k3">/</span><a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a>, <span class="n">1</span>.<span class="n">0f</span>, <span class="n">10000</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>glMatrixMode<span class="k2">(</span>GL_MODELVIEW<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="k1">while</span><span class="k2">(</span>playing<span class="k2">)</span></td></tr><tr><td class="number">7</td><td><span class="k2">{</span></td></tr><tr><td class="number">8</td><td>    glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>    draw_3d_stuff_here<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td>    glMatrixMode<span class="k2">(</span>GL_PROJECTION<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>    glPushMatrix<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>    glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>    glOrtho<span class="k2">(</span><span class="n">0</span>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a>, <span class="n">0</span>, <span class="k3">-</span><span class="n">1</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>    glMatrixMode<span class="k2">(</span>GL_MODELVIEW<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>    draw_2d_stuff_here<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td>    glMatrixMode<span class="k2">(</span>GL_PROJECTION<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>    glPopMatrix<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>    glMatrixMode<span class="k2">(</span>GL_MODELVIEW<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sat, 15 Jul 2006 00:27:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It doesn&#39;t appear to be working.  My mouse cursor, which worked in 2D, has stopped showing up when 3D was added.  I put in the code that you suggested and nothing happened differently.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrknPhoenix)</author>
		<pubDate>Mon, 17 Jul 2006 04:23:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Show the code. Can&#39;t tell what&#39;s wrong without seeing what you&#39;re doing. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Mon, 17 Jul 2006 04:38:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Initial setup</p><div class="source-code snippet"><div class="inner"><pre>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>projection_type <span class="k3">=</span><span class="k3">=</span> FRUSTUM<span class="k2">)</span>
    <span class="k2">{</span>
        glMatrixMode<span class="k2">(</span>GL_PROJECTION<span class="k2">)</span><span class="k2">;</span>
        glEnable<span class="k2">(</span>GL_TEXTURE_2D<span class="k2">)</span><span class="k2">;</span>
        glEnable<span class="k2">(</span>GL_DEPTH_TEST<span class="k2">)</span><span class="k2">;</span>        
        glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
       gluPerspective<span class="k2">(</span><span class="n">45</span>.<span class="n">0f</span>, <span class="k2">(</span>GLfloat<span class="k2">)</span>SCREEN_WIDTH <span class="k3">/</span> <span class="k2">(</span>GLfloat<span class="k2">)</span>SCREEN_HEIGHT, <span class="n">1</span>.<span class="n">0f</span>, <span class="n">1000</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span>         
        glViewport<span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, SCREEN_WIDTH, SCREEN_HEIGHT<span class="k2">)</span><span class="k2">;</span>           
        glClearColor<span class="k2">(</span><span class="n">0</span>.<span class="n">0f</span>, <span class="n">0</span>.<span class="n">0f</span>, <span class="n">0</span>.<span class="n">0f</span>, <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span>        
    <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>

This is the drawing function:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> objGfx::DoDraw<span class="k2">(</span><span class="k1">int</span> s<span class="k2">)</span>
<span class="k2">{</span>
    glClear<span class="k2">(</span>GL_COLOR_BUFFER_BIT <span class="k3">|</span> GL_DEPTH_BUFFER_BIT<span class="k2">)</span><span class="k2">;</span>            
    
    Do3D<span class="k2">(</span>s<span class="k2">)</span><span class="k2">;</span>
    
    Do2D<span class="k2">(</span>s<span class="k2">)</span><span class="k2">;</span>    
    
    allegro_gl_flip<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

3D function
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> objGfx::Do3D<span class="k2">(</span><span class="k1">int</span> s<span class="k2">)</span>
<span class="k2">{</span>
    <span class="k1">switch</span> <span class="k2">(</span>s<span class="k2">)</span>
    <span class="k2">{</span>
        <span class="k1">case</span> SCENE_TITLE:
            glMatrixMode<span class="k2">(</span>GL_MODELVIEW<span class="k2">)</span><span class="k2">;</span>
            glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>                                                                                      
            <span class="k1">break</span><span class="k2">;</span>
        <span class="k1">case</span> SCENE_NONE:
            glClearColor<span class="k2">(</span><span class="n">0</span>.<span class="n">0f</span>, <span class="n">0</span>.<span class="n">0f</span>, <span class="n">0</span>.<span class="n">0f</span>, <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span>
        default:
            <span class="k1">break</span><span class="k2">;</span>            
    <span class="k2">}</span>    
<span class="k2">}</span>
</pre></div></div><p>

2D Function
</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="k1">void</span> objGfx::Do2D<span class="k2">(</span><span class="k1">int</span> s<span class="k2">)</span></td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>    glMatrixMode<span class="k2">(</span>GL_PROJECTION<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>    glPushMatrix<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>    glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>    glOrtho<span class="k2">(</span><span class="n">0</span>, SCREEN_WIDTH, SCREEN_HEIGHT, <span class="n">0</span>, <span class="k3">-</span><span class="n">1</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>    glMatrixMode<span class="k2">(</span>GL_MODELVIEW<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>    </td></tr><tr><td class="number">9</td><td>    <span class="k1">switch</span> <span class="k2">(</span>s<span class="k2">)</span></td></tr><tr><td class="number">10</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>        <span class="k1">case</span> SCENE_TITLE:</td></tr><tr><td class="number">12</td><td>            <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>        <span class="k1">case</span> SCENE_NONE:</td></tr><tr><td class="number">14</td><td>        default:</td></tr><tr><td class="number">15</td><td>            <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">17</td><td>    </td></tr><tr><td class="number">18</td><td>    <span class="k1">if</span> <span class="k2">(</span>Mouse-&gt;Visible<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">19</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">20</td><td>        Draw-&gt;Sprite<span class="k2">(</span>Mouse-&gt;TextureSprite<span class="k2">(</span><span class="k2">)</span>, Mouse-&gt;TextureMask<span class="k2">(</span><span class="k2">)</span>,</td></tr><tr><td class="number">21</td><td>                     Mouse-&gt;X<span class="k2">(</span><span class="k2">)</span>, Mouse-&gt;Y<span class="k2">(</span><span class="k2">)</span>,</td></tr><tr><td class="number">22</td><td>                     Mouse-&gt;X<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> Mouse-&gt;CursorWidth<span class="k2">(</span><span class="k2">)</span>,</td></tr><tr><td class="number">23</td><td>                     Mouse-&gt;Y<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> Mouse-&gt;CursorHeight<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">25</td><td>    </td></tr><tr><td class="number">26</td><td>    <span class="k1">if</span> <span class="k2">(</span>DEBUG<span class="k2">)</span></td></tr><tr><td class="number">27</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">28</td><td>        Debug-&gt;Output<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">30</td><td>    </td></tr><tr><td class="number">31</td><td>    glMatrixMode<span class="k2">(</span>GL_PROJECTION<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>    glPopMatrix<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>    glMatrixMode<span class="k2">(</span>GL_MODELVIEW<span class="k2">)</span><span class="k2">;</span>    </td></tr><tr><td class="number">34</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrknPhoenix)</author>
		<pubDate>Mon, 17 Jul 2006 04:46:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What are the Mouse and Draw objects? At a glance, everything you pasted looks alright, so the problem is somewhere else.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Mon, 17 Jul 2006 04:51:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><b>edit:</b> I figured out the problem actually does have to do with how the mouse is being drawn, but I don&#39;t know what.  I&#39;ve since moved on to an attempt at a different solution.</p><p>Draw-&gt;Sprite
</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="k1">void</span> objDraw::Sprite<span class="k2">(</span>GLuint sprite, GLuint mask, <span class="k1">int</span> x1, <span class="k1">int</span> y1, <span class="k1">int</span> x2, <span class="k1">int</span> y2<span class="k2">)</span></td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>    glEnable<span class="k2">(</span>GL_TEXTURE_2D<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>    glEnable<span class="k2">(</span>GL_BLEND<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>    glBlendFunc<span class="k2">(</span>GL_DST_COLOR, GL_ZERO<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>    </td></tr><tr><td class="number">7</td><td>    glBindTexture<span class="k2">(</span>GL_TEXTURE_2D, mask<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>    </td></tr><tr><td class="number">9</td><td>    glBegin<span class="k2">(</span>GL_QUADS<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>        glTexCoord3f<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> glVertex3f<span class="k2">(</span>x1, y2, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>        glTexCoord3f<span class="k2">(</span><span class="n">1</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span>x2, y2, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>        glTexCoord3f<span class="k2">(</span><span class="n">1</span>, <span class="n">1</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span>x2, y1, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>        glTexCoord3f<span class="k2">(</span><span class="n">0</span>, <span class="n">1</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span>x1, y1, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>    glEnd<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td>    glColor4f<span class="k2">(</span><span class="n">1</span>.<span class="n">0f</span>, <span class="n">1</span>.<span class="n">0f</span>, <span class="n">1</span>.<span class="n">0f</span>, <span class="n">1</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>    </td></tr><tr><td class="number">18</td><td>    glBindTexture<span class="k2">(</span>GL_TEXTURE_2D, sprite<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    glBlendFunc<span class="k2">(</span>GL_ONE, GL_ONE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>    </td></tr><tr><td class="number">21</td><td>    glBegin<span class="k2">(</span>GL_QUADS<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>        glTexCoord3f<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> glVertex3f<span class="k2">(</span>x1, y2, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>        glTexCoord3f<span class="k2">(</span><span class="n">1</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span>x2, y2, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>        glTexCoord3f<span class="k2">(</span><span class="n">1</span>, <span class="n">1</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span>x2, y1, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>        glTexCoord3f<span class="k2">(</span><span class="n">0</span>, <span class="n">1</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span>x1, y1, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>        </td></tr><tr><td class="number">26</td><td>    glEnd<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Mouse everything
</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="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;alleggl.h&gt;</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="p">#include "mouse.h"</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="p">#include "defines.h"</span></td></tr><tr><td class="number">7</td><td><span class="p">#include "globals.h"</span></td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td>objMouse::objMouse<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">10</td><td><span class="k2">{</span></td></tr><tr><td class="number">11</td><td>    visible <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td><span class="k2">}</span></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td>objMouse::~objMouse<span class="k2">(</span><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>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>m_sprite<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>m_mask<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td><span class="k2">}</span></td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td><span class="k1">int</span> objMouse::X<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">21</td><td><span class="k2">{</span></td></tr><tr><td class="number">22</td><td>    <span class="k1">return</span> <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a><span class="k2">;</span></td></tr><tr><td class="number">23</td><td><span class="k2">}</span></td></tr><tr><td class="number">24</td><td>&#160;</td></tr><tr><td class="number">25</td><td><span class="k1">int</span> objMouse::Y<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">26</td><td><span class="k2">{</span></td></tr><tr><td class="number">27</td><td>    <span class="k1">return</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a><span class="k2">;</span></td></tr><tr><td class="number">28</td><td><span class="k2">}</span></td></tr><tr><td class="number">29</td><td>&#160;</td></tr><tr><td class="number">30</td><td><span class="k1">int</span> objMouse::Z<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">31</td><td><span class="k2">{</span></td></tr><tr><td class="number">32</td><td>    <span class="k1">return</span> <a href="http://www.allegro.cc/manual/mouse_z" target="_blank"><span class="a">mouse_z</span></a><span class="k2">;</span></td></tr><tr><td class="number">33</td><td><span class="k2">}</span></td></tr><tr><td class="number">34</td><td>&#160;</td></tr><tr><td class="number">35</td><td><span class="k1">int</span> objMouse::LeftButton<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">36</td><td><span class="k2">{</span></td></tr><tr><td class="number">37</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_b" target="_blank"><span class="a">mouse_b</span></a> <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">38</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">39</td><td>        <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">41</td><td>    <span class="k1">else</span></td></tr><tr><td class="number">42</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">43</td><td>        <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>    <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>&#160;</td></tr><tr><td class="number">47</td><td><span class="k1">int</span> objMouse::RightButton<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">48</td><td><span class="k2">{</span></td></tr><tr><td class="number">49</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_b" target="_blank"><span class="a">mouse_b</span></a> <span class="k3">&amp;</span> <span class="n">2</span><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>        <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">53</td><td>    <span class="k1">else</span></td></tr><tr><td class="number">54</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">55</td><td>        <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">57</td><td><span class="k2">}</span></td></tr><tr><td class="number">58</td><td>&#160;</td></tr><tr><td class="number">59</td><td><span class="k1">int</span> objMouse::MiddleButton<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">60</td><td><span class="k2">{</span></td></tr><tr><td class="number">61</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_b" target="_blank"><span class="a">mouse_b</span></a> <span class="k3">&amp;</span> <span class="n">4</span><span class="k2">)</span></td></tr><tr><td class="number">62</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">63</td><td>        <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">65</td><td>    <span class="k1">else</span> </td></tr><tr><td class="number">66</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">67</td><td>        <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">69</td><td><span class="k2">}</span></td></tr><tr><td class="number">70</td><td>&#160;</td></tr><tr><td class="number">71</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> objMouse::CursorSprite<span class="k2">(</span><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>    <span class="k1">return</span> m_sprite<span class="k2">;</span></td></tr><tr><td class="number">74</td><td><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/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> objMouse::CursorMask<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">return</span> m_mask<span class="k2">;</span></td></tr><tr><td class="number">79</td><td><span class="k2">}</span></td></tr><tr><td class="number">80</td><td>&#160;</td></tr><tr><td class="number">81</td><td><span class="k1">bool</span> objMouse::Visible<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">82</td><td><span class="k2">{</span></td></tr><tr><td class="number">83</td><td>    <span class="k1">return</span> visible<span class="k2">;</span></td></tr><tr><td class="number">84</td><td><span class="k2">}</span></td></tr><tr><td class="number">85</td><td>&#160;</td></tr><tr><td class="number">86</td><td><span class="k1">int</span> objMouse::CursorWidth<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">87</td><td><span class="k2">{</span></td></tr><tr><td class="number">88</td><td>    <span class="k1">return</span> m_sprite-&gt;w<span class="k2">;</span></td></tr><tr><td class="number">89</td><td><span class="k2">}</span></td></tr><tr><td class="number">90</td><td>&#160;</td></tr><tr><td class="number">91</td><td><span class="k1">int</span> objMouse::CursorHeight<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">92</td><td><span class="k2">{</span></td></tr><tr><td class="number">93</td><td>    <span class="k1">return</span> m_sprite-&gt;h<span class="k2">;</span></td></tr><tr><td class="number">94</td><td><span class="k2">}</span></td></tr><tr><td class="number">95</td><td>&#160;</td></tr><tr><td class="number">96</td><td>GLuint objMouse::TextureSprite<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">97</td><td><span class="k2">{</span></td></tr><tr><td class="number">98</td><td>    <span class="k1">return</span> texSprite<span class="k2">;</span></td></tr><tr><td class="number">99</td><td><span class="k2">}</span></td></tr><tr><td class="number">100</td><td>&#160;</td></tr><tr><td class="number">101</td><td>GLuint objMouse::TextureMask<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">102</td><td><span class="k2">{</span></td></tr><tr><td class="number">103</td><td>    <span class="k1">return</span> texMask<span class="k2">;</span></td></tr><tr><td class="number">104</td><td><span class="k2">}</span></td></tr><tr><td class="number">105</td><td>&#160;</td></tr><tr><td class="number">106</td><td><span class="k1">void</span> objMouse::SetCursorSprite<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> filename<span class="k2">)</span></td></tr><tr><td class="number">107</td><td><span class="k2">{</span></td></tr><tr><td class="number">108</td><td>    m_sprite <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span>filename, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">109</td><td>    texSprite <span class="k3">=</span> allegro_gl_make_texture<span class="k2">(</span>m_sprite<span class="k2">)</span><span class="k2">;</span>    </td></tr><tr><td class="number">110</td><td><span class="k2">}</span></td></tr><tr><td class="number">111</td><td>&#160;</td></tr><tr><td class="number">112</td><td><span class="k1">void</span> objMouse::SetCursorMask<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> filename<span class="k2">)</span></td></tr><tr><td class="number">113</td><td><span class="k2">{</span></td></tr><tr><td class="number">114</td><td>    m_mask <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span>filename, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">115</td><td>    texMask <span class="k3">=</span> allegro_gl_make_texture<span class="k2">(</span>m_mask<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">116</td><td><span class="k2">}</span></td></tr><tr><td class="number">117</td><td>&#160;</td></tr><tr><td class="number">118</td><td><span class="k1">void</span> objMouse::Show<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">119</td><td><span class="k2">{</span></td></tr><tr><td class="number">120</td><td>    visible <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">121</td><td><span class="k2">}</span></td></tr><tr><td class="number">122</td><td>&#160;</td></tr><tr><td class="number">123</td><td><span class="k1">void</span> objMouse::Scare<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">124</td><td><span class="k2">{</span></td></tr><tr><td class="number">125</td><td>    visible <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">126</td><td><span class="k2">}</span></td></tr><tr><td class="number">127</td><td>&#160;</td></tr><tr><td class="number">128</td><td><span class="k1">void</span> objMouse::Draw<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">129</td><td><span class="k2">{</span></td></tr><tr><td class="number">130</td><td>    allegro_gl_set_allegro_mode<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">131</td><td>&#160;</td></tr><tr><td class="number">132</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, m_sprite, <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a>, <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">133</td><td>    </td></tr><tr><td class="number">134</td><td>    allegro_gl_unset_allegro_mode<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">135</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Note the Mouse-&gt;Draw function isn&#39;t actually used... I just forgot to take it out, hehe
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrknPhoenix)</author>
		<pubDate>Mon, 17 Jul 2006 04:54:09 +0000</pubDate>
	</item>
</rss>
