OpenGL/de

From Free Pascal wiki
Revision as of 17:02, 10 January 2018 by Mathias (talk | contribs) (→‎Tutorial)
Jump to navigationJump to search

Deutsch (de) English (en) français (fr) 日本語 (ja) português (pt) русский (ru) Tiếng Việt (vi) 中文(中国大陆)‎ (zh_CN)

OpenGL (Open Graphics Library) ist die Plattform-unabhängige Standardbibliothek für graphische 3D-Darstellungen. Die meisten modernen Videokarten unterstützen OpenGL durch Hardwarebeschleunigung. Damit ist OpenGL eine gute Wahl, um anspruchsvolle Grafiksoftware zu schreiben.

OpenGL-Units in FreePascal

Die FreePascal OpenGL Schnittstelle besteht aus folgenden Units:

  • gl: Diese Unit enthält die zentralen Funktion wie Polygone zeichnen, Transformationen anwenden, Farben und Materialien setzen, ... Alle Prozeduren starten mit der Präposition "gl".
  • glu: Diese Unit enthält die OpenGL-Hilfsprogramme. Obwohl die Unit einige nützliche Funktionen hat, ist sie nicht unbedingt notwendig, weil man alle glu Prozeduren auch mit den Funktionen der gl Unit implementieren kann. Alle Prozeduren starten mit der Präposition "glu".
  • glext: Drittanbieter können hier zusätzliche Funktionen über Erweiterungen anbieten.

    Funktionen höherer OpenGL-Versionen (1.2 und neuer) stehen ebenfalls über diese Unit zur Verfügung. Die Initialisierung entspricht der Initialisierung normaler OpenGL-Erweiterungen: einfach die Funktion Load_GL_version_X_Y aufrufen. Ist ihre Version der OpenGL-Bibliothek älter als X.Y, gibt Load_GL_version_X_Y den Wert false zurück.

  • glut: Diese Unit enthält die Funktionen für die Erzeugung von OpenGL-Fenster. Obwohl sie cross-platform ist, fehlt bei den meisten Windows-Betriebssystemen die glut dll in der Standardeinstellung.
  • glx: Diese Unit enthält die Funktionen für das Aufsetzen eines OpenGL-Fensters in einem X-Window-System. Alle Prozeduren starten it der Präposition "glx". Offensichtlich kann diese Unit nur unter X-Window-Systemen und nicht unter Windows verwendet werden.

OpenGL-Units in Lazarus

Lazarus beinhaltet ein TOpenGLControl - ein LCL-Bedienelement mit einem OpenGL-Kontext. Das Lazarus-Package LazOpenGLContext befindet sich hier: lazarus/components/opengl/lazopenglcontext.lpk. Ein Beispiel befindet sich hier: lazarus/examples/openglcontrol/openglcontrol_demo.lpi.

OpenGL-Units von Drittanbietern

  • GLScene ist ein Lazarus-Package mit einer Menge zusätzlicher Features für OpenGL-Anwendungen.

Tutorial