这在Linux中运行良好但在Windows上窗口停止响应并且鼠标进入等待光标。我错过了什么?
// initialization
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
glutInitWindowSize(1024, 768);
glutCreateWindow("GL Window");
glutTimerFunc(2, update, 0);
glutDisplayFunc(display);
glutMainLoop();
// ...
fflush(stdout);
// update rate
void update(int value)
{
glutPostRedisplay();
glutTimerFunc(250, update, 0);
}
// loop
while(true)
{
display()
{
drawing(5);
glutSwapBuffers();
}
}
// drawing
void drawing(unsigned int sides)
{
if (sides < 3) return;
const float step = (2 * PI) / static_cast<float>(sides);
glBegin(GL_LINE_LOOP);
for (unsigned int i = 0; i < sides; ++i)
{
glVertex2f(cos(i * step), sin(i * step));
}
glEnd();
}
答案 0 :(得分:0)
感谢Alex和Qix的评论。 我发现我在循环中运行opengl draw函数。删除循环解决了这个问题。 仍然想知道为什么在Linux中工作呢?