Hi,
I’m trying to paint some 2D label text in OpenGL.
I’ve already achieved it, but I’m having problems because I don’t want the text to be always visible, I mean I would like that the DEPTH_TEST would be applied to the text rendered, but I’ve been unable to accomplish it.
I’m using glCallLists in order to render the text, here is a sample of more or less what I’m doing:
<CODE>
SelectObject(hDCForm, font);
wglUseFontBitmaps(hDCForm, 0, 255, IDBASELISTAFUENTETEXTO);
GLdouble modelView[16], projection[16];
GLint viewport[4];
glGetDoublev(GL_MODELVIEW_MATRIX, modelView);
glGetDoublev(GL_PROJECTION_MATRIX, projection);
glGetIntegerv(GL_VIEWPORT, viewport);
//2D mode
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0.0, (GLfloat)(viewport[2] - viewport[0]), 0.0, (GLfloat)(viewport[3] - viewport[1]), -1, 1);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glDisable(GL_DEPTH_TEST);
//project
double tx, ty, tz;
gluProject(position.x, position.y, position.z, modelView, projection, viewport, &tx, &ty, &tz);
//draw text
glRasterPos3d(tx, ty, tz);
glPushAttrib(GL_LIST_BIT);
glListBase(IDBASELISTAFUENTETEXTO);
glCallLists(strlen(str), GL_UNSIGNED_BYTE, str);
glPopAttrib();
//restore 3D
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
glEnable(GL_DEPTH_TEST);
</CODE>
Thanks in advance