GL Galore fügt alle OpenGL-Funktionen direkt in Hollywood ein, wobei die
ursprüngliche Syntax kaum oder gar nicht geändert wird. Nach dem Aufruf
von GL Galore mit @REQUIRE
werden alle GL-Befehle innerhalb einer
"gl"-Tabelle und die GLU-Befehle werden in einer "glu"-Tabelle verfügbar
gemacht.
Das Aufrufen von OpenGL-Befehle aus Hollywood ist viel einfacher als
die direkte Verwendung von OpenGL, da die Argumentsdefinition
(z.B.,'2d','3f','4sv') am Ende der meisten OpenGL-Befehlsnamen entfernt
wurde. Zum Beispiel bindet der GL Galore-Befehl gl.Light()
die OpenGL-Befehle: glLightf
, glLightfv
, glLighti
, glLightiv
. Die
Anzahl der an gl.Light() übergebenen Parameter definiert
den richtig zu verwendenden Befehl.
GL Galore verwendet normalerweise die Gleitkomma-Versionen aller
OpenGL-Befehle mit der höchstmöglichen Genauigkeit. Einige Befehle,
die einen Typparameter haben, verwenden einfach das höchstmögliche
(normalerweise #GL_DOUBLE
oder #GL_FLOAT
) und der Format-Parameter wird
nicht verwendet. Wenn stride
nicht verwendet wird, wird 0 angenommen.
Die Farbe und die Vektordaten können als Hollywood-Tabelle oder als mehrere Parameter übergeben werden. Ein Vektor kann 2, 3 oder 4 Werte (x, y, z, w) und Farben können 3 oder 4 Werte haben (rot, grün, blau, alpha).
Beispielsweise:
v1 = {0, 0} v2 = {1, 1} yellow = {1, 1, 0} gl.Color(yellow) gl.Vertex(v1) gl.Vertex(v2) |
Oder Sie können auch dies tun:
gl.Color(1, 1, 0) gl.Vertex(0, 0) gl.Vertex(1, 1) |
Es gibt einige OpenGL-Befehle, die einen Zeiger erwarten. In diesem Fall bietet GL Galore normalerweise auch eine Variante des Befehls an, womit er auch mit Hollywood-Tabellen funktioniert. Die ursprüngliche Zeigervariante ist jedoch auch in GL Galore verfügbar und kann für zeitkritische Skripte verwendet werden. Zum Beispiel liest gl.ReadPixels() Pixeldaten aus dem Bildspeicher in eine Hollywood-Tabelle, während gl.ReadPixelsRaw() Pixeldaten direkt in einen Speicherpuffer liest, was natürlich sehr viel schneller ist, aber Sie müssen dann mit Zeigern arbeiten. Siehe Mit Zeigern arbeiten für Details.