GLbyte green,
                  GLbyte blue )
void glColor3d(
GLdouble red,
                  GLdouble green,
                  GLdouble blue )
void glColor3f(
GLfloat red,
                  GLfloat green,
                  GLfloat blue )
void glColor3i(
GLint red,
                  GLint green,
                  GLint blue )
void glColor3s(
GLshort red,
                  GLshort green,
                  GLshort blue )
void glColor3ub(
GLubyte red,
                   GLubyte green,
                   GLubyte blue )
void glColor3ui(
GLuint red,
                   GLuint green,
                   GLuint blue )
void glColor3us(
GLushort red,
                   GLushort green,
                   GLushort blue )
void glColor4b(
GLbyte red,
                  GLbyte green,
                  GLbyte blue,
                  GLbyte alpha )
void glColor4d(
GLdouble red,
                  GLdouble green,
                  GLdouble blue,
                  GLdouble alpha )
void glColor4f(
GLfloat red,
                  GLfloat green,
                  GLfloat blue,
                  GLfloat alpha )
void glColor4i(
GLint red,
                  GLint green,
                  GLint blue,
                  GLint alpha )
void glColor4s(
GLshort red,
                  GLshort green,
                  GLshort blue,
                  GLshort alpha )
void glColor4ub(
GLubyte red,
                   GLubyte green,
                   GLubyte blue,
                   GLubyte alpha )
void glColor4ui(
GLuint red,
                   GLuint green,
                   GLuint blue,
                   GLuint alpha )
void glColor4us(
GLushort red,
                   GLushort green,
                   GLushort blue,
                   GLushort alpha )
void glColor3dv( const GLdouble *v )
void glColor3fv( const GLfloat *v )
void glColor3iv( const GLint *v )
void glColor3sv( const GLshort *v )
void glColor3ubv( const GLubyte *v )
void glColor3uiv( const GLuint *v )
void glColor3usv( const GLushort *v )
void glColor4bv( const GLbyte *v )
void glColor4dv( const GLdouble *v )
void glColor4fv( const GLfloat *v )
void glColor4iv( const GLint *v )
void glColor4sv( const GLshort *v )
void glColor4ubv( const GLubyte *v )
void glColor4uiv( const GLuint *v )
void glColor4usv( const GLushort *v )
glColor3b, glColor4b, glColor3s, glColor4s, glColor3i, and glColor4i take three or four signed byte, short, or long integers as arguments. When v is appended to the name, the color commands can take a pointer to an array of such values.
Current color values are stored in floating-point , with unspecified mantissa and exponent sizes. Unsigned integer color components, when specified, are linearly mapped to floating-point values such that the largest representable value maps to 1.0 (full intensity), and 0 maps to 0.0 (zero intensity). Signed integer color components, when specified, are linearly mapped to floating-point values such that the most positive representable value maps to 1.0, and the most negative representable value maps to -1.0. (Note that this mapping does not convert 0 precisely to 0.0.) Floating-point values are mapped directly.
Neither floating-point nor signed integer values are clamped to the range [0,1] before the current color is updated. However, color components are clamped to this range before they are interpolated or written into a color buffer.
The current color can be updated at any time. In particular, glColor can be called between a call to glBegin and the corresponding call to glEnd.