Я пытаюсь визуализировать некоторые строки на переднем плане в приложении OpenGL / GLUT под MacOSX 10.7.2.
В данный момент я использую этот код для рисования нескольких линий на переднем плане, и он отлично работает.
void drawForeground() {
int width = 10;
int height = 10;
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(-1, width, -1, height, -1, 1);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glDepthMask(GL_FALSE);
glBegin(GL_LINES);
//Draw the lines
glEnd();
/*********************/
glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glDepthMask(GL_TRUE);
}
Теперь я хотел бы также нарисовать некоторый текст.В предыдущей функции я добавил этот фрагмент кода в строку, где я поставил звездочки:
glRasterPos2d(2,2);
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_10, 'c');
, но это не сработало.Если я использую те же две строки вне метода drawForeground
, появляется 'c'.
Я уже позвонил glDisable(GL_TEXTURE_2D)
и ничего не изменилось.
Может ли кто-нибудь помочь мне понять мою ошибку?
Решение:
Оказалось, что решением было отключить освещение с помощью glDisable(GL_LIGHTING)
, включив его после рендеринга текста.
Я хотел бы подчеркнуть, что текст отображается всегда приодно и то же измерение независимо от параметров вызова glOrtho
.