C: printf меняет курс программы

У меня есть программа, которая имитирует столкновения (круги), используя openGL, GLUT, GLUI. Все работало нормально, но когда я немного изменил свой код, он начал делать странные вещи.

У меня есть 2 кнопки "play" и "step", "play" имитирует столкновения, обновленные с помощью таймера, "step" также имитирует, но вы должны нажать на него, чтобы идти дальше.

Первоначально он делал это, но теперь кнопка "играть" действует так же, как "шаг". Если я добавлю printf в мой обратный вызов таймера, все будет отлично работать...

Что я могу сделать?

В моем timer_cb я только получил:

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

1 ответ

Процедуры ввода / вывода, такие как printf, вносят ощутимую задержку, вызывая их. Чтобы ответить с определенной степенью правильности, вы показываете нам код интерфейса пользователя, но я думаю, что я могу догадаться...

Вы используете темы? Может быть, это может быть ошибка параллелизма, потому что выполнение обработчика события кнопки не синхронизировано с логикой обновления?

Другие вопросы по тегам