Computergrafik

Open GL Legacy Schnittstellen

GL Indexed Face Sets | | GL Legacy Attribute

OpenGL Legacy Schnittstellen

OpenGL wird schon seit sehr langer Zeit entwickelt; die Anfänge entstanden als noch lange keine programmierbare Grafikhardware zu erwarten war.

Die alten (legacy) Schnittstellen sind nicht mehr zeitgemäß da langsam und teilw. im Widerspruch zu neuen Features; trotzdem sind einige API-Aufrufe sehr zweckmäßig und noch weit verbreitet.

Die Funktionalität von OpenGL definiert sich über die Version (aktuell: 4.4) sowie Erweiterungen (> 200!). Ursprünglich war reiner Fortschritt über Erweiterungen geplant, aber das ist ein programmtechnischer Super-GAU (wenn die Erweiterung vorhanden mache das, wenn hingegen die andere, aber nicht jene, mache das, wenn beides nicht was völlig anderes, …).

Ab Version 3.1 kann ein Kontext in verschiedenen Profilen erzeugt werden - “core” und “compatibility”. Im “core”-Profil wird die Funktionalität die als Legacy bezeichnet wird nicht mehr angeboten! Im “compatibility”-Profil wird sie weiterhin angeboten.

  • NVidia erlaubt auch in OpenGL 4.4 noch ein “compatibility”-Profil
  • ATI erlaubt ebenfalls “compatibility”-Profile mit aktuellen OpenGL-Versionen
  • Mesa (für intel, teilw. ATI, teilw. NVidia) erlaubt ab OpenGL 3.1 ausschließlich “core”-Profile; der Rest nur über Erweiterungen; neue GLSL-Versionen nur in “core”-Profilen
  • Mesa für Software-Renderer erlaubt maximal OpenGL 2.1, Profile gibt es noch nicht, Rest über Erweiterungen

… macht alles nicht einfacher…

  • Eine Liste aller Extensions findet sich in der Registry

Bereits bekannte Legacy-Schnittstellen

  • glVertex*() : Vertices
  • glColor*() : Attribute (auch glNormal*(), etc.)


GL Indexed Face Sets | | GL Legacy Attribute

Options: