CG Internals und die Computer Graphics Systems Group am Hasso-Plattner-Institut haben am 18. November 2016 globjects 1.0 veröffentlicht. Die MIT-lizenzierte C++-Bibliothek stellt objektorientierte Schnittstellen für OpenGL ab Version 3.0 bereit. Sie richtet sich an Renderer, Visualisierungen und andere Anwendungen mit eigener Grafikprogrammierung.
Unterhalb dieser Abstraktion liegt glbinding, dessen Version 2.0 im April erschienen ist. glbinding stellt den Zugriff auf die OpenGL-API bereit; globjects ergänzt die Verwaltung von Objekten und wiederkehrenden Abläufen. Das offizielle Diagramm zeigt beide Schichten zwischen Anwendung und Grafiktreiber.
Shader, Zustände und Ressourcen verwalten
Die Funktionsliste der Version 1.0 umfasst unter anderem Buffer, Texturen, Framebuffer, Shader, Programme und Vertex Arrays. Hinzu kommen Zustandsverwaltung, Protokollierung, Fehlerbehandlung, Shader-Vorlagen sowie Uniform- und Uniform-Block-Verwaltung. Ressourcen werden über Referenzzähler verwaltet.
Im Beispiel der versionsgebundenen Dokumentation erstellt die Anwendung ein Program-Objekt, hängt Shader an und setzt einen Uniform-Wert. Einzelne Schritte der darunterliegenden OpenGL-Verwaltung übernimmt die Bibliothek. Optionale Prüfungen können OpenGL-, Compiler- und Linkerfehler melden.
Fallbacks ersetzen keine zusätzliche GPU-Funktionalität
Für bestimmte OpenGL-Konzepte stehen Fallback-Implementierungen bereit. Die gewählte Strategie lässt sich auch manuell beeinflussen, etwa bei problematischen Shader-Includes eines Treibers. Das ist keine Zusage, beliebige fehlende Hardwarefunktionen nachzubilden.
Zum Kompilieren sind ein C++11-fähiger Compiler und CMake ab Version 3.0 erforderlich. Das Release bietet unter anderem vorgefertigte x64-Pakete für Visual Studio 2015 sowie Beispiele. globjects bleibt eine Bibliothek für Grafikcode; Szeneneditor, Spiellogik und Asset-Pipeline sind nicht Teil dieses Engine-unabhängigen Ansatzes.

