L'exécutable: GLUtReshape.exe

Un carré blanc au milieu d'une fenêtre noire.
En cas de modification du ratio largeur/hauteur
de la fenêtre, le carré reste un carré.

Image022.gif (2558 octets)  Image022.gif (2558 octets) Image022.gif (2558 octets)

Le source: GLUtReshape.cpp

/* Auteur: Nicolas JANEY             */
/* nicolas.janey@univ-fcomte.fr      */
/* Avril 2001                        */
/* Illustration de l'utilisation     */
/* de la fonction reshape avec GLUt  */

#include <GL/glut.h>
#include <GL/glu.h>
#include <GL/gl.h>

void reshape(int w,int l) {
  glViewport(0,0,w,l);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  if ( w > l )
    glOrtho((float) -w/l,(float) w/l,
            -1.0,1.0,
            -1.0,1.0);
    else
    glOrtho(-1.0,1.0,
            (float) -l/w,(float) l/w,
            -1.0,1.0);
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
}

void display(void) {
  glClearColor(0.0F,0.0F,0.0F,0.0F) ;
  glClear(GL_COLOR_BUFFER_BIT) ;
  glColor3f(1.0F,1.0F,1.0F) ;
  glBegin(GL_POLYGON) ;
  glVertex2f(-0.5F,-0.5F) ;
  glVertex2f(-0.5F,0.5F) ;
  glVertex2f(0.5F,0.5F) ;
  glVertex2f(0.5F,-0.5F) ;
  glEnd() ;
  glFlush() ;
}

int main(int argc,char **argv) {
  glutInit(&argc,argv);
  glutInitWindowSize(200,200);
  glutInitWindowPosition(100,100);
  glutInitDisplayMode(GLUT_RGBA|GLUT_SINGLE);
  glutCreateWindow("Carre blanc homothetique") ;
  glutReshapeFunc(reshape) ;
  glutDisplayFunc(display) ;
  glutMainLoop() ;
  return(0);
}

WB01624_.gif (281 octets) RETOUR