Grafikbibliothek
Eine Grafikbibliothek ist eine Programmbibliothek, die einem Programm grundlegende Funktionen zur Grafikausgabe bereitstellt. Die bekanntesten Gruppen solcher Funktionen sind:
- OpenGL, eine standardisierte Programmierschnittstelle für 3D-Grafiken
- Sprites, aus den Ursprüngen der Computerspiele stammende Methode, jedes bewegliche Objekt auf dem Bildschirm einem Sprite zuzuweisen, und zwischen ihnen Kollisionen festzustellen
- Geometrische Funktionen, wie Kreis, Ellipse, ausgefüllte Rechtecke, Linien
- Fenstersysteme, Menüs, Dialogfenster, Buttons
- Schriftausgabe
Meist agiert der Programmierer mit abstrakten Objekten, die dann von der jeweiligen Bibliothek auf Pixel umgesetzt werden, wobei die Gruppe der 3D-Grafiken im Gegensatz zu den 2D-Pendants vorher noch in Voxel bzw. Texel konvertiert wird.
Gerade letztere haben ihre Bedeutung aus dem Spielebereich erfahren, jedoch sind auch professionelle Bildbearbeitung, medizinische Systeme, Mustererkennung und Konstruktionsabläufe (CAD) entscheidend gewesen für die Entwicklung vieler Grafikfunktionen.
Grafikbibliotheken sind von eigenständigen Anwendungen zur Darstellung von Bildern (Bildbearbeitung), Daten und Funktionen (Funktionenplotter) zu unterscheiden. Theoretisch müssten solche Anwendungen nur aus einer grafischen Benutzeroberfläche bestehen, über die auf Module einer Grafikbibliothek zugegriffen wird; historisch haben sich aber Bibliotheken und Anwendungen zumeist unabhängig voneinander entwickelt.
Beispiele für Grafikbibliotheken
Historische Bibliotheken:
- Borland Graphics Interface (BGI, Teil von Turbo Pascal)
Multimedia-Bibliotheken (enthalten auch Sound-, Netzwerk- und Eingabefunktionen):
- DirectX – eine Sammlung von proprietären Programmierschnittstellen; Implementationen sind Teil von Microsoft Windows; eine freie Implementationen wird innerhalb des Wine-Projektes entwickelt
- Simple DirectMedia Layer (SDL)
2D-Grafik:
3D-Grafik:
- Mesa 3D – eine freie Implementierung von OpenGL, OpenGL ES, OpenVG, EGL sowie libwayland-EGL, GLX und Glide (sowie einigen freien Gerätetreibern)
- Wine – eine freie Implementierung der Win32-API, die auch eine Implementierung von Direct3D Version 9 beinhaltet
- Qt
- Microsoft Foundation Classes (MFC)
- Swing (Java)