我正在编写我的第一个 OpenGL 程序(在 C 中使用 freeglut)。我的显示功能中有以下代码,它运行良好并打印出灰色文本:

glColor3f(0.5f, 0.5f, 0.5f);
glRasterPos2f(0, 0);
glutBitmapString(GLUT_BITMAP_HELVETICA_12, (unsigned char*)"some text");

现在我想尝试 glutStrokeString 而不是 glutBitmapString。在我对 API 的(粗略)理解中,以下内容应该有效:
glScalef(0.003,0.003,1);
glutStrokeString(GLUT_STROKE_ROMAN, (unsigned char*)"some text");

用这两行而不是 glutBitmapString 调用运行我的程序会在文本消失之前显示一次。此外,从那时起,我用 glutBitmapString 显示的所有文本也不起作用。我在这里缺少什么?

最佳答案

我终于解决了。问题是,由于某种原因,glutIdleFunc 被设置为我的显示函数,而我忘记重置我的矩阵(所以我一次又一次地调用 glScalef)。它现在工作正常。

关于opengl - 使用 glutStrokeString 而不是 glutBitmapString 时的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4747179/

10-10 13:17