www.wikidata.de-de.nina.az
Das OpenGL Utility Toolkit GLUT ist eine umfangreiche Bibliothek und Sammlung von OpenGL Programmen welche in erster Linie systemnahe Eingabe und Ausgabeoperationen des jeweiligen Betriebssystems umsetzen Dieses Toolkit beinhaltet dabei Funktionen zum Definieren von Fenstern zur Steuerung dieser Fenster und zur Erfassung von Benutzereingaben Es werden ebenfalls Funktionen bereitgestellt die das Zeichnen von primitiven geometrischen Strukturen als Wireframe oder solide Korper ermoglichen Die Strukturen umfassen Wurfel Kugeln den Utah Teapot und weitere auf Dreiecken oder Vierecken basierende geometrische Formen Zusatzlich stehen noch leicht limitierte Funktionen zur Erstellung von Popup Menus zur Verfugung GL Utility ToolkitBasisdatenEntwickler Mark KilgardAktuelle Version 3 7 8 Dezember 1998 Betriebssystem plattformunabhangigKategorie APILizenz Proprietar Mark KilgardGLUTGLUT wurde ursprunglich von Mark J Kilgard dem Autor von OpenGL Programming for the X Window System und The Cg Tutorial The Definitive Guide to Programmable Real Time Graphics wahrend seiner Tatigkeiten bei Silicon Graphics Inc entworfen und implementiert Die beiden Ziele des GL Toolkits waren die Erstellung von moglichst portablen Code fur unterschiedliche Plattformen und das erleichternde Erlernen von OpenGL Der Einstieg in OpenGL wird durch die Verwendung von GLUT stark erleichtert da es durch Kapselung die Eigenheiten der Betriebssystem spezifischen Funktionen verdeckt So ist es moglich durch wenige Zeilen und relativ geringem Wissen umfangreiche OpenGL Programme zu realisieren GLUT ist im Wesentlichen fur kleine bis mittelgrosse Projekte geeignet und bietet eine Schnittstelle fur die Sprachen C C Fortran und Ada Alle GLUT spezifischen Funktionen beginnen immer mit dem Prafix glut Zum Beispiel initialisiert der Aufruf glutInit amp argc argv das GLUT System in C und C Inhaltsverzeichnis 1 Implementierungen 2 Einschrankungen 3 Kontroverse 4 Siehe auch 5 WeblinksImplementierungen BearbeitenDas ursprungliche GLUT von Mark Kilgard unterstutzte nur das X Window System in Form von GLX Es wurde spater auch fur Microsoft Windows in Form von WGL und fur Mac OS X in Form von NSGL CGL portiert Kilgards GLUT Implementierung wird seit langerem nicht mehr gewartet und die zugrundeliegende Lizenz gestattet keine Redistribution oder eine modifizierte Form Dies fuhrte zu mehreren vollstandigen Reimplementierungen vorzugsweise als Open Source Varianten Die erste freie Implementierung freeglut strebte eine zu 100 kompatible Version an Sie fuhrte zusatzlich ein paar wenige neue Funktionen ein um einige Limitierungen der ursprunglichen GLUT Version besser korrigieren zu konnen Die zweite grosse Reimplementierung openglut ist ein Fork der freeglut Version und strebt eine Erweiterung der ursprunglichen Funktionalitat an Der Fortschritt kam im Mai 2005 allerdings zum Stillstand Einschrankungen BearbeitenEinige der Designentscheidungen der ursprunglichen GLUT Version machen es dem Entwickler fast unmoglich bestimmte Aufgaben umzusetzen Dies fuhrte zu sehr vielen eher unerwahnten und oder unbekannten Patches und Erweiterungen Einige Projekte fuhren sogar eigene Reimplementierungen und Korrekturen ein Einige der bekannten GLUT Limitierungen sind folgende Der Entwickler muss immer den Aufruf glutMainLoop tatigen aber dieser Aufruf kehrt nie zuruck Dieses Verhalten macht es fur Entwickler fast unmoglich GLUT in Programmen zu verwenden welche die vollstandige Kontrolle uber ihrer Ereignis Schleifen selbst behalten mochten Eine verbreitete Korrektur fur dieses Problem ist die Einfuhrung einer Funktion meist glutCheckLoop genannt welche nur eine einzelne Iteration der GLUT Ereignis Schleife ausfuhrt Eine andere oft verwendete Methode ist die Auslagerung der GLUT Ereignis Schleife in einen Thread Diese Variante ist allerdings stark abhangig vom verwendeten Betriebssystem und fuhrt oft zu ungewollten Synchronisationsproblemen Die Tatsache dass glutMainLoop nie zuruckkehrt fuhrt dazu dass eine Applikation mit GLUT nie normal endet freeglut korrigiert dieses Problem durch die Einfuhrung der Funktion glutLeaveMainLoop die einen konformen Abbruch von glutMainLoop erzwingt GLUT terminiert das Programm bzw den Prozess wenn das eigentliche Darstellungsfenster geschlossen wird Fur einige Applikation kann dies ein unerwunschtes Verhalten sein Um dieses Problem zu umgehen fuhren einige Reimplementierungen einen zusatzlichen Callback wie zum Beispiel glutWMCloseFunc ein Da die ursprungliche GLUT Version nicht mehr weiter gepflegt wird wurde sie mehr oder weniger durch die Open Source Variante freeglut abgelost Kontroverse BearbeitenDie verschiedenen GLUT Versionen liegen in Quelltextform vor und unterstutzen etliche Plattformen GLUT ist aber weder Public Domain noch Open Source und darf daher nicht verandert weitergegeben oder erweitert werden Siehe auch BearbeitenOpenGL Utility Library GLU Simple DirectMedia Layer SDL Weblinks BearbeitenGLUT The OpenGL Utility Toolkit GLUT Dokumentation OpenGLUT FreeGLUT GLUT Tutorial fur C und C Sehr umfangreiches GLUT Tutorial fur C Zusammenfassung der OpenGL Funktionen fur Windows GL und GLU GLUT fur WIN32 GLUT Pakete fur Dev C GLUT Installation fur Dev C Weitere GLUT Installation fur Dev C Abgerufen von https de wikipedia org w index php title OpenGL Utility Toolkit amp oldid 164617067