OpenGL utility toolkit

OpenGL utility toolkit

GLUT (OpenGL Utility Toolkit) est une bibliothèque utilitaire dont les droits d'auteur sont détenus par Mark J. Kilgard, offrant un jeu de routines pour la gestion des fenêtres OpenGL et les interactions avec le système d'exploitation (gestion clavier, souris, etc.) indépendamment de celui-ci et du gestionnaire de fenêtres. Elle est essentiellement utilisée pour la création de programmes de démonstrations.

Sommaire

Présentation

La bibliothèque GLUT a été écrite par Mark J. Kilgard, auteur de OpenGL Programming for the X Window System et de The CG Tutorial: The Definitive Guide to Programmable Real-Time Graphics, lorsqu'il travaillait pour Silicon Graphics.

GLUT a été écrite dans le but de produire du code portable entre les différents systèmes d'exploitations et à des fins pédagogiques. Sa simplicité permet de ne pas se préoccuper de la partie système, relativement complexe, et de se concentrer sur le fond du programme OpenGL lui-même. La création d'un programme avec GLUT ne prend que quelques lignes de code. Par ailleurs, elle respecte les conventions et la syntaxe d'OpenGL ; les noms de fonction commencent par le préfixe « glut » et les macros par « GLUT » (OpenGL utilise les préfixes « gl » et « GL »).

Outre l'encapsulation des fonctions de base d'un gestionnaire de fenêtre, GLUT propose des routines pour le dessin de quelques objets simples à trois dimensions comme la sphère, le cube, le cône, le tore ou encore la fameuse théière de Newell.

La bibliothèque GLUT n'est désormais plus en développement et s'est arrêtée à la version 3.7 en mai 1998. Les bibliothèques Open Source freeglut et OpenGLUT (qui dérive de freeglut) remplacent aujourd'hui GLUT. Elles réimplémentent l'API GLUT et y apportent quelques évolutions. La création de ces bibliothèques alternatives est due au flou concernant la licence de GLUT, qui d'après certains ne permettrait pas la redistribution de code modifié[1].

Exemple

Voici un exemple de programme utilisant GLUT et OpenGL (compatible avec freeglut et OpenGLUT). Le résultat est une simple fenêtre avec un triangle multicolore au centre.

Fenetre glut.png
#include <GL/glut.h>
 
void
reshape (int w, int h)
{
  if (h == 0)
    h = 1;
 
  glViewport (0, 0, (GLsizei)w, (GLsizei)h);
 
  glMatrixMode (GL_PROJECTION);
  glLoadIdentity ();
  gluPerspective (45.0, (GLfloat)w/(GLfloat)h, 0.1, 1000.0);
 
  glMatrixMode (GL_MODELVIEW);
  glLoadIdentity ();
 
  glutPostRedisplay ();
}
 
void
display ()
{
  /* efface les tampons de couleur et de profondeur ; réinitialise
     la matrice de modélisation-visualisation */
  glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glClearColor(0, 0, 0, 0);
  glLoadIdentity ();
 
  /* dessine un triangle dont les couleurs rouge, vert et bleu sont
     attribuées aux trois sommets */
  glTranslatef (0.0, 0.0, -5.0);
  glBegin (GL_TRIANGLES);
    glColor3f (1.0f, 0.0f, 0.0f);
    glVertex3f (-1.0f, -1.0f, 0.0f);
 
    glColor3f (0.0f, 1.0f, 0.0f);
    glVertex3f (1.0f, -1.0f, 0.0f);
 
    glColor3f (0.0f, 0.0f, 1.0f);
    glVertex3f (0.0f, 1.0f, 0.0f);
  glEnd ();
  glFlush();
}
 
int
main (int argc, char *argv[])
{
  /* initialisation de GLUT */
  glutInit (&argc, argv);
 
  /* création d'une fenêtre OpenGL RVBA avec en simple mémoire tampon
     avec un tampon de profondeur */
  glutInitDisplayMode (GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH);
  glutInitWindowSize (350, 300);
  glutCreateWindow ("Une fenêtre OpenGL avec GLUT");
 
  /* initialisation des fonctions callback appelées par glut 
     pour respectivement le redimensionnement de la fenêtre
     et le rendu de la scène */
  glutReshapeFunc (reshape);
  glutDisplayFunc (display);
 
  /* entre dans la boucle d'évènements */
  glutMainLoop ();
  return 0;
}

Notes et références

  1. Voir page de discussion de l'article concernant les problèmes de licence de GLUT.

Voir aussi

Liens internes

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article OpenGL utility toolkit de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • OpenGL Utility Toolkit — Developer(s) Mark Kilgard Operating system Cross platform The OpenGL Utility Toolkit (GLUT) is a library of utilities for OpenGL programs, which primarily perform system level I/O with the host operating system. Functions performed include window …   Wikipedia

  • Opengl utility toolkit — GLUT (OpenGL Utility Toolkit) est une bibliothèque utilitaire dont les droits d auteur sont détenus par Mark J. Kilgard, offrant un jeu de routines pour la gestion des fenêtres OpenGL et les interactions avec le système d exploitation (gestion… …   Wikipédia en Français

  • OpenGL Utility Toolkit — GL Utility Toolkit Entwickler Mark Kilgard Aktuelle Version 3.7 (8. Dezember 1998) Betriebssystem plattformunabhängig Kategorie API Lizenz …   Deutsch Wikipedia

  • OpenGL Utility Toolkit — …   Википедия

  • OpenGL Utility Library — (GLU) ist eine Grafikbibliothek. Aufsetzend auf OpenGL bietet GLU Grafikfunktionen höherer Ebene. Sie ist Teil des OpenGL Pakets. Es existieren drei bedeutende Implementierungen der GLU: Microsoft GLU, in Windows enthalten, implementiert GLU 1.2… …   Deutsch Wikipedia

  • OpenGL Utility Library — The OpenGL Utility Library (GLU) is a computer graphics library. It consists of a number of functions that use the base OpenGL library to provide higher level drawing routines from the more primitive routines that OpenGL provides. It is usually… …   Wikipedia

  • OpenGL — Original author(s) Silicon Graphics Developer(s) Khronos Group Stable release 4.2 …   Wikipedia

  • Opengl — Entwickler: Khronos Group Aktuelle Version: 3.1 (24. März 2009) Betriebssystem: plattformunabhängig Kategorie …   Deutsch Wikipedia

  • Opengl user interface library — (GLUI) est une bibliothèque en C++ qui se combine avec celle de OpenGL utility toolkit (GLUT) et qui fournit diverses routines pour créer l interface d un programme entièrement avec OpenGL. L interface est alors indépendante du système d… …   Wikipédia en Français

  • OpenGL user interface library — (GLUI) est une bibliothèque en C++ qui se combine avec celle de OpenGL utility toolkit (GLUT) et qui fournit diverses routines pour créer l interface d un programme entièrement avec OpenGL. L interface est alors indépendante du système d… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”