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.
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.
Antworten:
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).
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.
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.
glGetError()
. Wenn SieglGetError()
nach jedemgl*
Anruf anrufen, können Sie sie möglicherweise auf diese Weise