Page principale | Liste des namespaces | Hiérarchie des classes | Liste par ordre alphabétique | Liste des composants | Liste des fichiers | Composants | Déclarations

pi2d14_numberrenderer.cpp

Aller à la documentation de ce fichier.
00001 
00002 #include "pi2d14/pi2d14_numberrenderer.h"
00003 
00004 
00005 MENU::NumberRenderer::NumberRenderer(unsigned int numberTextureId)
00006 {
00007         idTexNumber = numberTextureId;
00008 }
00009 
00010 MENU::NumberRenderer::~NumberRenderer()
00011 {
00012 }
00013 
00014 void MENU::NumberRenderer::render(unsigned int number, int x, int y, int sizex, int sizey)
00015 {
00016         int i=1;
00017         int finali;
00018         //on bind la texture
00019         glEnable(GL_TEXTURE_2D);
00020         glBindTexture(GL_TEXTURE_2D, idTexNumber);
00021         glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
00022 
00023         //on enable l'alpha test pour le détourage des nombres dans la texture
00024         glEnable(GL_ALPHA_TEST);
00025         glAlphaFunc(GL_GREATER, 0.8);
00026         
00027         if(number<10)
00028         {
00029                 finali=10;
00030         }
00031         else if(number<100)
00032         {
00033                 finali=100;
00034         }
00035         else if(number<1000)
00036         {
00037                 finali=1000;
00038         }
00039         else if(number<10000)
00040         {
00041                 finali=10000;
00042         }
00043         
00044         for(i=finali/10;i>=1;i=i/10)
00045         {
00046                 unsigned int curn = number/i;   //calcul du chiffre entre 0 et 9 a la position i du nombre
00047 
00048                 //dessin du chiffre courant
00049                 glBegin(GL_QUADS);
00050                 glTexCoord2f( curn * NUMBER_TEX_OFFSET, 0);
00051                 glVertex2f( x, y);
00052                 glTexCoord2f( (curn+1) * NUMBER_TEX_OFFSET, 0);
00053                 glVertex2f( x + sizex, y);
00054                 glTexCoord2f( (curn+1) * NUMBER_TEX_OFFSET, 1);
00055                 glVertex2f( x + sizex, y + sizey);
00056                 glTexCoord2f( curn * NUMBER_TEX_OFFSET, 1);
00057                 glVertex2f( x, y + sizey);
00058                 glEnd();
00059                 
00060                 x+=sizex;
00061         }
00062         
00063         glDisable(GL_TEXTURE_2D);
00064         glDisable(GL_ALPHA_TEST);
00065 }
00066 

Généré le Fri Mar 26 13:02:03 2004 pour AlgoAtomD par doxygen 1.3.5