Back to index

extremetuxracer  0.5beta
glhelper.cpp
Go to the documentation of this file.
00001 /* 
00002  * PPRacer 
00003  * Copyright (C) 2004-2005 Volker Stroebel <volker@planetpenguin.de>
00004  *
00005  * This program is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU General Public License
00007  * as published by the Free Software Foundation; either version 2
00008  * of the License, or (at your option) any later version.
00009  * 
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  * 
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software
00017  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00018  */
00019  
00020 #include "glhelper.h"
00021 
00022 #include "../../textures.h"
00023 
00024 namespace ppGL {
00025 
00026 namespace draw {
00027        
00028 
00029 void
00030 rect(pp::Color color, pp::Vec2d startPos, pp::Vec2d endPos)
00031 {
00032        glDisable( GL_TEXTURE_2D );
00033     glColor3dv( (double*)&color );
00034     glRectf( startPos.x, startPos.y,
00035                endPos.x,endPos.y );
00036        glEnable( GL_TEXTURE_2D );
00037 }      
00038        
00039 void
00040 rect(const char* binding, pp::Vec2d pos, pp::Vec2d size )
00041 {
00042        GLuint texobj;
00043        
00044     if ( !get_texture_binding( binding, &texobj ) ) {
00045               texobj = 0;
00046     }
00047               
00048     glPushMatrix();
00049     {  
00050               glBindTexture( GL_TEXTURE_2D, texobj );
00051               glEnable( GL_TEXTURE_2D );
00052               glColor4f( 1.0, 1.0, 1.0, 1.0 );
00053               glTranslatef( pos.x, pos.y, 0.0 );
00054               glBegin( GL_QUADS );
00055               {
00056               glTexCoord2f( 0.0, 0.0 );
00057               glVertex2f( 0.0, 0.0 );
00058            
00059               glTexCoord2f( 1.0, 0.0 );
00060                      glVertex2f( size.x, 0.0 );
00061            
00062               glTexCoord2f( 1.0, 1.0 );
00063               glVertex2f( size.x, size.y );
00064            
00065               glTexCoord2f( 0.0, 1.0 );
00066               glVertex2f( 0.0, size.y );
00067               }
00068               glEnd();
00069     }
00070     glPopMatrix();
00071 }
00072 
00073 } //namespace draw
00074        
00075 } //namespace ppGL