GLUT ( Open GL Utility T oolkit ) er et hjælpeprogram bibliotek ophavsretligt beskyttet af Mark J. Kilgard , der tilbyder et sæt af rutiner for forvaltningen af OpenGL vinduer og interaktioner med operativsystemet (tastatur styring, mus, osv) uafhængigt af det, og det vindueschef. Det bruges hovedsageligt til oprettelse af demonstrationsprogrammer.
GLUT-biblioteket blev skrevet af Mark J. Kilgard , forfatter af OpenGL Programming for X Window System og CG Tutorial: The Definitive Guide to Programmable Real-Time Graphics , mens han arbejdede for Silicon Graphics .
GLUT blev skrevet med det formål at producere bærbar kode mellem forskellige operativsystemer og til uddannelsesmæssige formål. Dens enkelhed giver dig mulighed for ikke at bekymre dig om systemdelen, som er relativt kompleks, og at koncentrere dig om stoffet i selve OpenGL-programmet. Oprettelse af et program med GLUT tager kun et par linjer kode. Derudover respekterer den konventionerne og syntaksen for OpenGL; funktionsnavne starter med præfikset "glut" og makroer med "GLUT" (OpenGL bruger præfikserne "gl" og "GL").
Ud over indkapslingen af de grundlæggende funktioner i en vinduesadministrator tilbyder GLUT rutiner til tegning af et par enkle tredimensionelle objekter som kuglen, terningen, keglen, torus eller endda Newells berømte tekande .
GLUT-biblioteket er ikke længere under udvikling og stoppede ved version 3.7 i maj 1998 . Open Source-bibliotekerne freeglut og OpenGLUT (som stammer fra freeglut) erstatter nu GLUT. De genimplementerer GLUT API og bringer nogle ændringer til det. Oprettelsen af disse andre biblioteker skyldes uklarheden omkring licensen til GLUT, som ifølge nogle ikke ville tillade omfordeling af ændret kode.
Her er et eksempel på et program, der bruger GLUT og OpenGL (kompatibel med freeglut og OpenGLUT). Resultatet er et simpelt vindue med en flerfarvet trekant i midten.
Vi kan så få dette program til at udvikle sig ved at definere tilbagekald til tastatur ( glutKeyboardFunc ) eller mus ( glutMouseFunc ) handlinger eller endda med den enkle bevægelse af musen ( glutMotionFunc ), for eksempel for interaktivt at ændre placeringen af punkterne i trekanten eller valg af farver. Se også det enkle interaktive eksempel givet i OpenGL- artiklen .