窗户结冰了

Window is freezing

本文关键字:窗户      更新时间:2023-10-16

这在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();
}

感谢Alex和Qix的评论。我发现我正在循环运行opengl绘图函数。删除循环解决了问题。仍然想知道为什么在Linux中它可以工作?