| 12
 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
 
 | #include <iostream>
#include "GL/glut.h"
 
 
 
// Déclaration des fonctions callback :
void FuncAffichage();
void FuncRedim(int x, int y);
 
void main(void)
{
    /* Fenêtre GLUT */
    // Position du coin supérieur gauche (100, 100)
    glutInitWindowPosition(100, 100);
    // Taille de la fenêtre 640 x 480
    glutInitWindowSize(640, 480);
    // Affichage en mode RBGA et simple tampon
    glutInitDisplayMode(GLUT_RGBA|GLUT_SINGLE);
    // Création de la fenêtre avec un titre
    glutCreateWindow("Vive l'OpenGL !");
 
 
    /* Initialisations OpenGL */
 
    /* Évènements GLUT */
    // Évènement d'affichage
    glutDisplayFunc(FuncAffichage);
    // Évènement de redimensionnement
    glutReshapeFunc(FuncRedim);
 
    /* Lancement de la boucle de traitement */
    glutMainLoop();
 
}
 
void FuncAffichage()
{
    /* Intructions d'affichage */
    // Couleur blanche pour l'arrière-plan
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    // Efface l'écran (vide le frame buffer)
    glClear(GL_COLOR_BUFFER_BIT);
 
    // Dessin d'un triangle multicolore
    glBegin(GL_TRIANGLES); // Début de dessin
      glColor3d(1.0, 0.0, 0.0);
      glVertex2d( 0.0, 0.7);
      glColor3d(0.0, 0.0, 0.0);
      glVertex2d(-0.5, -0.7);
      glColor3d(1.0, 1.0, 0.0);
      glVertex2d( 0.5, -0.7);
      glEnd(); // Fin du dessin
 
      // Achève tout l'affichage
      glFlush();
}
void FuncRedim(int x, int y)
{
    /* Instructions de redimensionnement */
    // Dessin sur la totalité de la fenêtre
    glViewport(0, 0, x, y);
 
    // Définit la matrice de projection active
    glMatrixMode(GL_PROJECTION);
    // Initialisation de la matrice
    glLoadIdentity();
    // Opération de projection 2D
    gluOrtho2D(-1.0f, 1.0f, -1.0f, 1.0f);
 
} | 
Partager