C:printf改变了程序的过程

时间:2012-05-09 19:24:31

标签: opengl timer printf glut glui

我有一个使用openGL,GLUT,GLUI模拟碰撞(圆圈)的程序。一切都运行良好,但当我改变我的代码时,它开始做奇怪的事情。

我有2个按钮,“播放”和“步骤”,“播放”模拟用计时器更新的碰撞,“步骤”也模拟,但你必须点击它才能更进一步。

最初它确实如此,但现在“播放”按钮的行为与“步骤”相同。如果我在我的计时器回调中添加一个printf,那一切都很完美...

我该怎么办?

在我的timer_cb中我只有:

 // printf("something\n");
 glutPostRedisplay();
 glutTimerFunc(getDeltaT(), timer_cb, 0);

1 个答案:

答案 0 :(得分:1)

I / O例程(如printf)通过调用它们来引入合理的延迟。要回答一定程度的正确性,请向我们展示用户界面代码,但我想我可以猜到......

你在使用线程吗?也许它可能是并发错误,因为按钮事件处理程序的执行与更新逻辑不同步?