2016-06-01 4 views
1

Es gibt viele Fragen, die den Unterschied zwischen API und Bibliothek wie this one und this one erklären.Ist OpenGL eine API oder Softwarebibliothek?

Ich verstehe, dass eine Bibliothek ein Stück Code ist, den Sie aus Ihrem eigenen Code aufrufen können, um Ihnen dabei zu helfen, Dinge schneller/einfacher zu erledigen. Eine API ist Teil einer Bibliothek von Klassen und Methoden, die von einem Benutzer in seinem Code verwendet werden können. Nach meinem Verständnis habe ich OpenGL als Bibliothek und nicht als API klassifiziert, aber wenn ich ein Buch lese, heißt es, OpenGL ist keine Bibliothek, sondern eine API.

Können Sie mir sagen, was es ist?

+0

'wenn ich ein Buch lese, sagt es Opengl ist keine Bibliothek, es ist API' Buch ist nicht immer richtig. Wenden Sie Ihre eigene Meinung an – vcp

Antwort

3

OpenGL ist eine API. Warum? Weil eine API eine Liste von Funktionen und Tokens ist, die so spezifiziert sind, dass sie sich auf bestimmte Weise verhalten. Eine API ist in einer Spezifikation notiert. Die Spezifikation von OpenGL kann bei http://opengl.org/registry gefunden werden und Spezifikationen sind nicht etwas, das Sie auf einem Computersystem installieren und ausführen können.

OpenGL ist keine Bibliothek. Warum? Weil eine Spezifikation nur ein normativer Text ist, den Sie nicht eigenständig verwenden können. Beachten Sie, dass es unter den Spezifikationsdokumenten für OpenGL auch Headerdateien gibt, die zum Kompilieren eines OpenGL-Programms verwendet werden können. Aber was fehlt, ist der tatsächliche Code (Bibliothek), mit dem verlinkt werden könnte. Etwas, das mit der OpenGL-Spezifikation verknüpft werden kann und sich so verhält, wird als Implementierung bezeichnet. Implementierungen sind jedoch an dieselbe OpenGL-Spezifikation gebunden und werden als Teil der Grafikinfrastruktur eines Betriebssystems geliefert.