C: printf меняет курс программы
У меня есть программа, которая имитирует столкновения (круги), используя openGL, GLUT, GLUI. Все работало нормально, но когда я немного изменил свой код, он начал делать странные вещи.
У меня есть 2 кнопки "play" и "step", "play" имитирует столкновения, обновленные с помощью таймера, "step" также имитирует, но вы должны нажать на него, чтобы идти дальше.
Первоначально он делал это, но теперь кнопка "играть" действует так же, как "шаг". Если я добавлю printf в мой обратный вызов таймера, все будет отлично работать...
Что я могу сделать?
В моем timer_cb я только получил:
// printf("something\n");
glutPostRedisplay();
glutTimerFunc(getDeltaT(), timer_cb, 0);
1 ответ
Процедуры ввода / вывода, такие как printf, вносят ощутимую задержку, вызывая их. Чтобы ответить с определенной степенью правильности, вы показываете нам код интерфейса пользователя, но я думаю, что я могу догадаться...
Вы используете темы? Может быть, это может быть ошибка параллелизма, потому что выполнение обработчика события кнопки не синхронизировано с логикой обновления?