Wie finde ich heraus, welche Funktionen für bestimmte OpenGL-Profile veraltet sind?

7

Ich möchte die Liste der Funktionen erhalten, die Teil eines bestimmten OpenGL-Profils sind, und die Liste der Funktionen, die veraltet sind, damit ich diese vermeiden kann.

user827992
quelle
Ich glaube , wenn Sie eine veraltete Funktion verwenden, sollten Sie beim Aufrufen einen Fehler sehen glGetError(). Wenn Sie glGetError()nach jedem gl*Anruf anrufen, können Sie sie möglicherweise auf diese Weise
ausrotten
Für Legacy-OpenGL (vor Version 3) gibt es einen speziellen Artikel: khronos.org/opengl/wiki/Legacy_OpenGL
Taufe

Antworten:

9

Die wahre Quelle dieser Informationen sind die verschiedenen OpenGL-Spezifikationen . Sie enthalten eine Liste der Funktionen, deren Definitionen, Aufzählungen dieser Funktionen usw. Für jede OpenGL-Version.

Wenn Sie möchten, was entfernt wurde (veraltet bedeutet "vorhanden, aber nicht zur Verwendung empfohlen". Wenn etwas entfernt wird , wird es entfernt ), enthält der Abschnitt 3.2.1 der Spezifikation E.2.2 eine Liste der entfernten Funktionen.

Wenn Sie jedoch nur Nicht-Kernfunktionen vermeiden möchten, sollten Sie eine OpenGL-Ladebibliothek verwenden , deren Header entfernte Funktionen ausschließen. GL3w kann in dieser Funktion arbeiten, lädt jedoch keine Erweiterungen. Das einzige, von dem ich weiß, dass es dies tut, ist mein eigenes (weshalb ich es geschrieben habe; um die nicht zum Kern gehörende Kruft loszuwerden).

Nicol Bolas
quelle
2

Als Alternative zum Navigieren in den Registrierungs-PDFs.

Der schnellste / einfachste Weg, den ich gefunden habe, ist eine Suche in der rohen Datei gl.spec . Es ist die Datei, aus der das andere Material generiert wird, die nicht für Menschen lesbar ist, aber nicht schlecht.

Entfernen Sie einfach die führenden Präfixe gl oder GL_ aus dem Namen. Die Einträge haben eine veraltete Eigenschaft und werden einer veralteten Kategorie hinzugefügt. Außerdem erfahren Sie, in welcher Version es eingeführt wurde, damit Sie wissen, wann es verfügbar ist.

Sie können sie auch mit einem einfachen Skript verarbeiten, um die Informationen zu extrahieren und in eine Liste aufzunehmen.

David C. Bishop
quelle
Oder Sie können diese XML-Dateien mit demselben Inhalt einfach in einem viel vernünftigeren Format herunterladen .
Nicol Bolas
1

Sie haben alle diese Informationen in der OpenGL-Registrierung . Dort können Sie die aktuelle OpenGL-API, die OpenGL Shading Language und die GLX-Spezifikationen und Referenzseiten sowie die alten Versionen überprüfen.

Dan
quelle
Wo ist die Liste genau?
user827992
Hängt davon ab, welche Version Sie sich ansehen möchten. Hier haben Sie die Referenz für OpenGL 4. Hier den Rest der Dokumentation.
Dan