OpenGL bitmap drawing after PBO binding

PBOs, as well as textures, must also be unbound before bitmap drawing routines (or any other drawing). Otherwise bitmaps will not be drawn. For example:

glBegin(GL_QUADS);
// draw
glEnd();

// unbind them!
glBindTexture(GL_TEXTURE_2D, 0);
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0);

// raster drawing
glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
glRasterPos2f(some_x, some_y);
glutBitmapString(GLUT_BITMAP_HELVETICA_12,
	(unsigned char*)"some message");

Here above, glutBitmapString will not show anything unless you call glBindBuffer with 0 to unbind the buffer. The same is required with the texture.

The tip is taken from this article: Text disappears when initializing PBO/Textures

Regarding PBO in general, this is a very nice tutorial: OpenGL Pixel Buffer Object (PBO)

OpenGL bitmap drawing after PBO binding