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
| #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