窗户很冷

时间:2016-07-29 02:53:00

标签: c++ opengl

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

1 个答案:

答案 0 :(得分:0)

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