Vielen Funktionen in OpenGL gibt es in verschiedenen Varianten, die verschiedene Parameter akzeptieren. Je nach Ausgangsdaten, die Sie verwenden, können Sie so verschiedene Funktionen benutzen und können ggf. eine Konvertierung sparen. Je nachdem, was Sie übergeben möchten, verändert sich das Suffix der Funktion. Es gibt zum Beispiel Funktionen mit Suffix i, die einen Integer-Wert nehmen und eine Variante mit Suffix f, die einen Float-Wert nimmt (übrigens meine ich damit GL_FLOAT).
Funktion | Welche Parameter sie nimmt | Was sie tut |
---|---|---|
glLightf | 1 GL_FLOAT | Setzt ein Attribut für ein Licht |
glLightfv | einen GL_FLOAT-Vektor (Zeiger) | Setzt Attribute für ein Licht |
glLighti | 1 GL_INT | Setzt einen Integerwert für ein Attribut für ein Licht |
glLightiv | einen GL_INT-Vektor (Zeiger) | |
glVertex3f | drei GL_FLOAT-Werte | Zeichnet einen Vertex |
Als Beispiel die Funktion glVertex3f() gibt es auch als glVertexfv(), die dann nur noch einen Zeiger auf drei Float-Werte annimmt, die als Koordinaten zu interpretieren sind. Folgender Code bewirkt das gleiche:
glVertex3f(1, 2, 3);
GL_FLOAT values[3]={1, 2, 3}; glVertexfv(values);