Was ist GLEW und wie funktioniert es?


15

Ich suche eine anfängerfreundliche Erklärung . Die Erklärung der offiziellen Website ist zu kurz und führt mich zu mehr Fragen als Antworten:


  • Was ist GLEW?

Die GLEW-Entwicklerseite sagt:

Die OpenGL Extension Wrangler Library (GLEW) ist eine plattformübergreifende Open-Source- Bibliothek zum Laden von C / C ++ -Erweiterungen . GLEW bietet effiziente Laufzeitmechanismen, um zu bestimmen, welche OpenGL-Erweiterungen auf der Zielplattform unterstützt werden.


  • Aber was ist eine Bibliothek zum Laden von Erweiterungen?

Das Wiki von OpenGL sagt

Eine OpenGL-Ladebibliothek ist eine Bibliothek, die zur Laufzeit Zeiger auf OpenGL-Funktionen , Kernfunktionen sowie Erweiterungen lädt .


  • Was bedeutet es, Zeiger auf OpenGL-Funktionen zu laden ?

  • Was ist eine Erweiterung ?

  • Was bedeutet " Core- sowie Extensions "?

Antworten:


20

Die meisten Compiler bieten einen OpenGL-Header, der OpenGL 1.1 unterstützt. Die meisten Funktionen in dieser Version von OpenGL sind jedoch längst veraltet und es fehlen wichtige Funktionen wie Shader und Vertex-Buffer-Objekte. GLEW ist im Grunde genommen nur ein Header (es gibt eine Quelldatei, die ebenfalls kompiliert werden muss, aber Sie können sie einfach in Ihr Projekt aufnehmen), der neuere OpenGL-Funktionen bietet.

Was bedeutet es durch Erweiterung?

Hier ist ein Link von OpenGL.org über sie. Sie sind nur zusätzliche Funktionen für OpenGL, die nicht Teil von OpenGL sind. Sie bieten nützliche Funktionen, aber Sie können nicht garantieren, dass sie auf jedem Computer funktionieren, da sie nicht Teil des OpenGL-Kerns sind.

Was bedeutet es, Zeiger auf OpenGL-Funktionen zu laden?

OpenGL wird vom Grafiktreiber als eine Reihe von Funktionen implementiert, die gemäß der Spezifikation implementiert sind, und nicht als eigenständige Bibliothek. Daher kann OpenGL nicht einfach mit Ihrem Projekt verknüpft werden.

Sie müssen eine Funktion aufrufen (z. B. GetProcAddress, dies hängt jedoch von der Plattform ab, für die Sie entwickeln), um den Funktionszeiger zur Laufzeit vom Treiber für jede OpenGL-Funktion abzurufen.

GLEW existiert, weil es sehr schwierig sein kann, genau das zu tun. Es ist viel einfacher, wenn Sie während der Initialisierung nur einen Header einfügen und eine Funktion aufrufen. Genau das macht GLEW. Außerdem ist GLEW plattformübergreifend.

Was bedeutet "Core- sowie Extensions"?

Dies bedeutet, dass OpenGL-Funktionen sowie OpenGL-Erweiterungen bereitgestellt werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.