Contents /
Previous /
Next
Choosing a Color for the Bitmap
You are familiar with using glColor*() and glIndex*() to set the current color or index to draw
geometric primitives. The same commands are used to set different state variables,
GL_CURRENT_RASTER_COLOR and GL_CURRENT_RASTER_INDEX, for rendering
bitmaps. The raster color state variables are set when glRasterPos*() is called, which can lead to a
trap. In the following sequence of code, what is the color of the bitmap?
glColor3f(1.0, 1.0, 1.0); /* white */
glRasterPos3fv(position);
glColor3f(1.0, 0.0, 0.0); /* red */
glBitmap(....);
The bitmap is white! The GL_CURRENT_RASTER_COLOR is set to white when
glRasterPos3fv() is called. The second call to glColor3f() changes the value of
GL_CURRENT_COLOR for future geometric rendering, but the color used to render the bitmap is
unchanged.
To obtain the current raster color or index, you can use the query commands glGetFloatv() or
glGetIntegerv() with GL_CURRENT_RASTER_COLOR or GL_CURRENT_RASTER_INDEX
as the first argument