Dienstprogramm-Werkzeug von OpenGL

Das Dienstprogramm-Werkzeug von OpenGL (ÜBERSÄTTIGUNG) ist eine Bibliothek von Dienstprogrammen für Programme von OpenGL, die in erster Linie Systemebene-Eingabe/Ausgabe mit dem Gastgeber Betriebssystem durchführen. Durchgeführte Funktionen schließen Fensterdefinition, Fensterkontrolle und Überwachung der Tastatur und des Maus-Eingangs ein. Routinen, um mehrere geometrische Primitive (sowohl in der festen als auch wireframe Weise) zu ziehen, werden auch, einschließlich Würfel, Bereiche und der Teekanne von Utah zur Verfügung gestellt. ÜBERSÄTTIGUNG hat auch etwas beschränkte Unterstützung, um Kontextmenüs zu schaffen.

ÜBERSÄTTIGUNG wurde von Mark J. Kilgard, Autor der Programmierung von OpenGL für das X Fenstersystem und Den Cg-Tutorenkurs geschrieben: Das Endgültige Handbuch zur Programmierbaren Echtzeitgrafik, während er für Silicon Graphics Inc. arbeitete

Die zwei Ziele der ÜBERSÄTTIGUNG sind, die Entwicklung des ziemlich tragbaren Codes zwischen Betriebssystemen zu erlauben (ÜBERSÄTTIGUNG ist Quer-Plattform), und das Lernen von OpenGL leichter zu machen. Mit der Programmierung von OpenGL angefangen zu werden, während er ÜBERSÄTTIGUNG häufig verwendet, nimmt nur einige Linien des Codes und verlangt Kenntnisse nicht, systemspezifische Fenstertechnik APIs zu bedienen.

Alle ÜBERSÄTTIGUNGS-Funktionen Anfang mit dem Präfix (zum Beispiel, kennzeichnet das aktuelle Fenster als müssend neu entworfen werden).

Durchführungen

Die ursprüngliche ÜBERSÄTTIGUNGS-Bibliothek durch Mark Kilgard unterstützt das X Fenstersystem (GLX) und wurde zu Windows von Microsoft (WGL) von Nate Robins getragen. Zusätzlich, Schiffe von Mac OS X mit einem ÜBERSÄTTIGUNGS-Fachwerk, das seinen eigenen NSGL/CGL unterstützt.

DIE ÜBERSÄTTIGUNGS-Bibliothek von Kilgard wird nicht mehr unterstützt, und seine Lizenz hat die Neuverteilung von modifizierten Versionen der Bibliothek nicht erlaubt. Das hat das Bedürfnis nach der kostenlosen Software oder den offenen Quellwiederdurchführungen der API von Kratzer gespornt. Die erste derartige Bibliothek war freeglut, der zum Ziel hat, eine vernünftig nahe Fortpflanzung zu sein, obwohl, eine kleine Anzahl von neuen Funktionen einführend, sich mit den Beschränkungen der ÜBERSÄTTIGUNG zu befassen. OpenGLUT, eine Gabel von freeglut, fügt mehrere neue Eigenschaften zur ursprünglichen API hinzu, aber die Arbeit daran hat im Mai 2005 aufgehört.

Beschränkungen

Einige von den ursprünglichen Designentscheidungen der ÜBERSÄTTIGUNG haben es hart für Programmierer gemacht, um gewünschte Aufgaben durchzuführen. Das hat viele dazu gebracht, Nichtkanon-Flecke und Erweiterungen auf GLUT.http://www.mathies.com/glfaq/GLToolkitFAQ.html#II zu schaffen, Eine kostenlose Software oder offene Quellwiederdurchführungen schließen auch üble Lagen ein.

Einige der bemerkenswerteren Beschränkungen der ursprünglichen ÜBERSÄTTIGUNGS-Bibliothek schließen ein:

  • Die Bibliothek verlangt, dass Programmierer, eine Funktion rufen, die nie zurückkehrt. Das macht es hart für Programmierer, um ÜBERSÄTTIGUNG in ein Programm oder Bibliothek zu integrieren, die Kontrolle seiner eigenen Ereignis-Schleife haben möchte. Ein allgemeiner Fleck, um das zu befestigen, soll eine neue Funktion, genannt (Mac OS X) oder (freeglut/OpenGLUT) einführen, der nur eine einzelne Wiederholung der ÜBERSÄTTIGUNGS-Ereignis-Schleife führt. Ein anderer allgemeiner workaround soll die Ereignis-Schleife der ÜBERSÄTTIGUNG in einem getrennten Faden führen, obwohl sich das durch das Betriebssystem ändern kann, und auch Synchronisationsprobleme oder andere Probleme einführen kann: Zum Beispiel verlangt die ÜBERSÄTTIGUNGS-Durchführung von Mac OS X, dass im Hauptfaden geführt werden.
  • Die Tatsache, die nie auch Mittel zurückgibt, dass ein ÜBERSÄTTIGUNGS-Programm über die Ereignis-Schleife nicht herrschen kann. freeglut befestigt das durch das Einführen einer neuen Funktion.
  • Die Bibliothek begrenzt den Prozess, wenn das Fenster geschlossen wird; für einige Anwendungen darf das nicht gewünscht werden. So schließen viele Durchführungen eine Extrarückrufaktion, solcher als ein.

Da es nicht mehr aufrechterhalten wird (im Wesentlichen ersetzt von der offenen Quelle freeglut), werden die obengenannten Designprobleme in der ursprünglichen ÜBERSÄTTIGUNG noch immer nicht aufgelöst.

Siehe auch

Außenverbindungen

sindÜBERSÄTTIGUNGS-Installation für Dev C ++

George Pólya / Giovanni Boccaccio
Impressum & Datenschutz