CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
OpenGL utility toolkit - Wikipédia

OpenGL utility toolkit

Un article de Wikipédia, l'encyclopédie libre.

Vous avez de nouveaux messages (diff ?).

GLUT (OpenGL Utility Toolkit) est une bibliothèque utilitaire à source ouverte 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

[modifier] 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].

[modifier] 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.

#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);
  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 ();
}

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;
}

[modifier] Notes et références

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

[modifier] Voir aussi

[modifier] Liens internes

[modifier] Liens externes

Portail de l'informatique – Accédez aux articles de Wikipédia concernant l’informatique.
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com