GLUT ( Open GL Utility T oolkit ) este o bibliotecă de utilități protejată de Mark J. Kilgard , care oferă un set de rutine pentru gestionarea ferestrelor OpenGL și interacțiunile cu sistemul de operare (gestionarea tastaturii, mouse-ul etc.) independent de acesta și de manager de ferestre. Este utilizat în principal pentru crearea de programe demonstrative.
Biblioteca GLUT a fost scrisă de Mark J. Kilgard , autorul programării OpenGL pentru X Window System și The CG Tutorial: The Definitive Guide to Programmable Real-Time Graphics , în timp ce lucra pentru Silicon Graphics .
GLUT a fost scris cu scopul de a produce cod portabil între diferite sisteme de operare și în scopuri educaționale. Simplitatea sa vă permite să nu vă faceți griji cu privire la partea de sistem, care este relativ complexă, și să vă concentrați asupra substanței programului OpenGL în sine. Crearea unui program cu GLUT necesită doar câteva linii de cod. În plus, respectă convențiile și sintaxa OpenGL; numele funcțiilor încep cu prefixul „glut” și macrocomenzile cu „GLUT” (OpenGL folosește prefixele „gl” și „GL”).
Pe lângă încapsularea funcțiilor de bază ale unui manager de ferestre, GLUT oferă rutine pentru desenarea câtorva obiecte tridimensionale simple, cum ar fi sfera, cubul, conul, torul sau chiar faimosul ceainic al lui Newell .
Biblioteca GLUT nu mai este în curs de dezvoltare și sa oprit la versiunea 3.7 în mai 1998 . Bibliotecile Open Source freeglut și OpenGLUT (care derivă din freeglut) înlocuiesc acum GLUT. Acestea reimplementează API-ul GLUT și aduc unele modificări la acesta. Crearea acestor alte biblioteci se datorează neclarității privind licența GLUT, care, potrivit unora, nu ar permite redistribuirea codului modificat.
Iată un exemplu de program care utilizează GLUT și OpenGL (compatibil cu freeglut și OpenGLUT). Rezultatul este o fereastră simplă cu un triunghi multicolor în centru.
Putem apoi face acest program să evolueze prin definirea apelurilor de apel pentru acțiunile de la tastatură ( glutKeyboardFunc ) sau mouse ( glutMouseFunc ), sau chiar cu simpla mișcare a mouse-ului ( glutMotionFunc ), pentru a schimba interactiv poziția punctelor triunghiului sau alegerea culorilor. A se vedea, de asemenea, exemplul simplu interactiv dat în articolul OpenGL .