Some letters appended
to some command names (the 3f in glColor3f(), for example).
The 3 part of the suffix indicates that three arguments
are given.
The f part of the suffix indicates that the arguments are floating-point
numbers.
| Suffix | Data Type | Typical Corresponding C-Language Type | OpenGL Type Definition |
|---|---|---|---|
| b | 8-bit integer | signed char | GLbyte |
| s | 16-bit integer | short | GLshort |
| i | 32-bit integer | long | GLint, GLsizei |
| f | 32-bit floating-point | float | GLfloat, GLclampf |
| d | 64-bit floating-point | double | GLdouble, GLclampd |
| ub | 8-bit unsigned integer | unsigned char | GLubyte, GLboolean |
| us | 16-bit unsigned integer | unsigned short | GLushort |
| ui | 32-bit unsigned integer | unsigned long | GLuint, GLenum, GLbitfield |
Thus, the two commands
glVertex2i(1, 3); glVertex2f(1.0, 3.0);are equivalent, except that the first specifies the vertex's coordinates as 32-bit integers and the second specifies them as single-precision floating-point numbers.
Some OpenGL commands can take a final letter v, which indicates that the command takes a pointer to a vector (or array) of values rather than a series of individual arguments. Many commands have both vector and nonvector versions:
glColor3f(1.0, 0.0, 0.0);
float color_array[] = {1.0, 0.0, 0.0};
glColor3fv(color_array);
Usually OpenGL commands are referred to by their base names only, and an asterisk is included to
indicate that there may be more to the command name, for example,
glColor*().
voidglColor3{b s i f d ub us ui} (TYPEr, TYPEg,
TYPEb);
void glColor4{b s i f d ub us ui} (TYPEr, TYPEg,
TYPEb, TYPEa);
void glColor3{b s i f d ub us ui}v (const TYPE*v);
void glColor4{b s i f d ub us ui}v (const TYPE*v);