Opengl 使用glutStrokeString而不是glutBitmapString时出现问题

Opengl 使用glutStrokeString而不是glutBitmapString时出现问题,opengl,glut,freeglut,Opengl,Glut,Freeglut,我正在编写我的第一个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的(拙劣)理解,以下几点应该是

我正在编写我的第一个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调用运行我的程序会在文本消失之前显示文本一次。此外,从这一点上看,我所有用BitMapString显示的文本也不起作用。我错过了什么?我终于解决了。问题是,出于某种原因,glutIdleFunc被设置为我的显示函数,而我忘记了重置我的矩阵(因此我一次又一次地调用glScalef)。它现在工作正常。

是否在每帧清除深度缓冲区和颜色缓冲区?是的。glClear(GL_颜色_缓冲_位| GL_深度_缓冲_位);最终解决了它,它只是缺少一个glLoadIdentity()。该死