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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
//Calcul des coefficients de hauteur et de largeur
//pour afficher l'image aux bonnes proportions dans la fenêtre
//Si la largeur de l'image est strictement supérieure à sa longueur
if( largeurText>hauteurText )
{
if( largeurText>ZoneClient.right )
{
//Si la hauteur de l'image, recalculée avec la ratio
//'Largeur de l'image/Largeur de la zone client' est
//inférieure à la hauteur de la zone client
if( hauteurText/((float)largeurText/ZoneClient.right)<ZoneClient.bottom )
{ coeffLargeur = 0; coeffHauteur=1-(hauteurText/((float)largeurText/ZoneClient.right))/ZoneClient.bottom; }
else
{ coeffLargeur = 1-(largeurText/((float)hauteurText/ZoneClient.bottom))/ZoneClient.right;
coeffHauteur = 0; }
}
else
{
//Si l'image a ses dimensions inférieures
//ou égales à celle de la zone client
if( hauteurText<=ZoneClient.bottom )
{
coeffLargeur = 1-(float)largeurText/ZoneClient.right;
coeffHauteur = 1-(float)hauteurText/ZoneClient.bottom;
}
//Si seule la hauteur de l'image est
//supérieure à celle de la zone client
else
{
coeffLargeur = 1-(largeurText/((float)hauteurText/ZoneClient.bottom))/ZoneClient.right;
coeffHauteur = 0;
}
}
}
//Sinon (si la hauteur de l'image est supérieure ou égale à sa longueur)
else
{
if( hauteurText>ZoneClient.bottom )
{
//Si la largeur de l'image, recalculée avec la ratio
//'Hauteur de l'image/Hauteur de la zone client' est
//inférieure à la largeur de la zone client
if( largeurText/((float)hauteurText/ZoneClient.bottom)<ZoneClient.right )
{ coeffLargeur = 1-(largeurText/((float)hauteurText/ZoneClient.bottom))/ZoneClient.right;
coeffHauteur = 0; }
else
{ coeffLargeur = 0;
coeffHauteur =(hauteurText/((float)largeurText/ZoneClient.right))/ZoneClient.bottom; }
}
else
{
//Si l'image a ses dimensions inférieures
//ou égales à celle de la zone client
if( largeurText<=ZoneClient.right )
{
coeffLargeur = 1-(float)largeurText/ZoneClient.right;
coeffHauteur = 1-(float)hauteurText/ZoneClient.bottom;
}
//Si seule la largeur de l'image est
//supérieure à celle de la zone client
else
{
coeffLargeur = 0;
coeffHauteur = (hauteurText/((float)largeurText/ZoneClient.right))/ZoneClient.bottom;
}
}
}
//Affichage de l'image
glPushMatrix();
glBegin(GL_QUADS);
glTexCoord2f(0.0, 1.0);
glVertex2f(-1.0+coeffLargeur, -1.0+coeffHauteur);
glTexCoord2f(0.0, 0.0);
glVertex2f(-1.0+coeffLargeur, 1.0-coeffHauteur);
glTexCoord2f(1.0, 0.0);
glVertex2f(1.0-coeffLargeur, 1.0-coeffHauteur);
glTexCoord2f(1.0, 1.0);
glVertex2f(1.0-coeffLargeur, -1.0+coeffHauteur);
glEnd();
glPopMatrix ();
SwapBuffers (hDC); |
Partager