C++ Wie funktioniert eine Grafikbibliothek
-
Hallo.
Kann mir jemand sagen wie eine Grafik biliothek funktionert?
Also funktioniert die über die WIN API oder wie wird das so gemacht?
Und wie funktionieren Plattform unabhänige Biliotheken?
-
Von welcher Ebene redest du? Meinst du so etwas wie DirectX oder OpenGL? Die reden direkt mit dem Grafiktreiber (bzw. kann man sogar als Teil des Grafiktreibers ansehen), der dann direkt mit der Hardware spricht. Oder meinst du allgemeinere Frameworks wie SDL oder SFML oder eine der vielen Grafikengines? Die reden dann mit DirectX bzw. OpenGL. Wenn es plattformunabhängig sein soll, dann implementieren sie den Teil, der plattformabhängig ist eben für jede Plattform einzeln, so wie andere plattformunabhängige Bibliotheken auch. Da OpenGL auf vielen Plattformen verbreitet ist, kann man einen Großteil des Codes ohne Änderung auf verschiedenen Plattformen benutzen, ohne ihn anzupassen.
-
Also basiert SFML oder SDL usw. auf DirectX oder OpenGl und was es da sonst noch gib?
(Ich sprach von SFML und SDL)
-
Ja. SFML benutzt intern OpenGL und eine Reihe weiterer Low-Level-Bibliotheken zur Behandlung von Bild-, Schrift- und Audioformaten. OpenGL selbst ist keine Bibliothek, sondern eine Spezifikation, die von verschiedenen Grafikkartenherstellern umgesetzt wird. Treiber verknüpfen dabei die Hardware (in dem Fall die Grafikkarte) mit der Software (OpenGL-Schnittstelle), sodass ein portables API ermöglicht wird. Gleiches gilt für andere Funktionalität wie Benutzereingabe: wo nötig, werden betriebssystemspezifische Schnittstellen (z.B. WinAPI) aufgerufen.
Bei einem Aufruf einer SFML-Funktion können also (vereinfacht) folgende Abstraktionsebenen durchlaufen werden:
SFML -> OpenGL -> Treiber -> Grafikkarte (Hardware)
SFML -> Windows API -> Treiber -> Tastatur (Hardware)
-
Ah ok Danke