在openGL 4中渲染文本 - 不起作用

时间:2012-02-12 05:16:47

标签: c++ opengl glut

我一直在尝试使用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 个答案:

答案 0 :(得分:4)

以上绝对不是符合openGL 4标准的代码。

请参阅the OpenGL 4 Reference manual,你会看到 glColor glRasterPos 甚至不存在(它们已被弃用..我相信甚至回到openGL 3 )

为了学习如何使用不使用固定功能的现代方式使用openGL,我建议this tutorial

所以基本上答案是没有 glRasterPos 我相信这个功能不起作用 在openGL 4.(或3)(

对于可行的方法,请参阅此answer