Рендеринг текста в openGL 4 - не работает - PullRequest
1 голос
/ 12 февраля 2012

Я пытался визуализировать текст с помощью glutBitmapCharacter ().

Это то, что я получил в качестве функции рендеринга 2D-текста:

void drawString(int x, int y, char* string) {
int i, len;

glDisable(GL_TEXTURE);
glDisable(GL_TEXTURE_2D);
glDisable(GL_LIGHTING);

glColor3f(1.0f, 0.0f, 0.0f);
glRasterPos2i(x, y);

for (i = 0, len = strlen(string); i < len; i++) {
    glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, (int)string[i]);
}
glEnable(GL_TEXTURE);
glEnable(GL_TEXTURE_2D);
glEnable(GL_LIGHTING);
}

В функции рендеринга сцены я делаю этот вызов:

drawString(0, 0, "TESTING");

Это единственные значения x и y, в которых будет отображаться любой текст, в этом случае «TESTING» отображается в середине экрана с «TE» красным (желаемый цвет) и «STING» черным .

Весь код для работы с этой функцией, который я видел, использовал более ранние версии openGL и устаревший код, поэтому я не уверен, что делать.

1 Ответ

4 голосов
/ 12 февраля 2012

Вышеприведенный код определенно не соответствует OpenGL 4.

См. Справочное руководство OpenGL 4 , и вы увидите glColor , glRasterPos даже не существует там (они устарели .. Я верю даже в openGL 3)

Чтобы узнать, как использовать openGL с современным способом, который не использует фиксированную функциональность, я бы порекомендовал этот урок

Таким образом, в основном ответ таков: без glRasterPos Я считаю, что эта функция не может работать в openGL 4. (или 3 в этом отношении)

О возможном методе см. Этот ответ

...