(re)Bonjour a tous 
Je suis entrain de me remetre dans openGL et je m'apercois qu'il me manque pas mal de notions de bases que j'avais oculté jusqu'a présent ! Mais bon ... il n'est jms trop tard ^^
En fait voici une portion de code issu d'un tutorial sur la création de font .
C'est la fonction qui sert a placer le texte fraichement créer a l'ecran .
Je vais tenter de l'expliquer ...a ous de me dire si je suis a coté de la plaque ou pas 
	
	1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
   |  
void Move2dText(int x, int y) 
{ 
glPushAttrib(GL_TRANSFORM_BIT | GL_VIEWPORT_BIT); 
 
glMatrixMode(GL_PROJECTION); 
glPushMatrix(); 
glLoadIdentity(); 
 
glMatrixMode(GL_MODELVIEW); 
glPushMatrix(); 
glLoadIdentity(); 
 
y = 480 - FONT_HEIGHT - y; 
 
glViewport(x-1, y-1, 0, 0); 
 
glRasterPos4f(0, 0, 0, 1); 
 
glPopMatrix(); 
glMatrixMode(GL_PROJECTION); 
glPopMatrix(); 
 
glPopAttrib(); 
} | 
 On commence par un
	
	glPushAttrib(GL_TRANSFORM_BIT | GL_VIEWPORT_BIT);
 Cette fonction va servir a faire des changement temporaire sur la matrice de pojection(<-- ?? chui pas sur de moi la ??) et le viewport  .
Ces changement ne seront effectif que entre cette ligne et la lgne final :
Ensuite, nous avons un groupe de ligne + ou - similaire :
	
	1 2 3 4 5 6 7
   | glMatrixMode(GL_PROJECTION); 
glPushMatrix(); 
glLoadIdentity(); 
 
glMatrixMode(GL_MODELVIEW); 
glPushMatrix(); 
glLoadIdentity();  | 
 On va 
-selectionner la matrice de projection en tant que matrice courante 
-empiler cette matrice
-"reset" cette matrice
-selectionner la matrice de "modelisation" en tant que matrice courante 
-empiler cette matrice
-"reset" cette matrice
-> bilan : la matrice sur laquelle on travaille est la derniére selectionner ( modelvieuw ), 
Et les changement effectuer sur ces 2 matrice ne seront effectif qu'entre ces ligne et celles la :
	
	1 2 3 4
   |  
glPopMatrix(); 
glMatrixMode(GL_PROJECTION); 
glPopMatrix();  | 
 Ou, simplement, on dépile notre matrice courante, on sleectionne la matrice de porjection et on la dépile a son tour .
Enfin , reste le coeur de la fonction :
	
	1 2 3 4 5
   | y = 480 - FONT_HEIGHT - y; 
 
glViewport(x-1, y-1, 0, 0); 
 
glRasterPos4f(0, 0, 0, 1);  | 
 FONT_HEIGHT vaut 48 dans notre cas présent ...
j'avoue que j'ai du mal a décortiquer ces 3 lignes ...
tout d'abord on change y en 480 ( ?? d'ou ca sort ca ?? ) - la hauteur d'une lettre  - y ..
humm  ::confuse::
Si vous pouvez m'éclairer 
merci
						
					
Partager