GLUT и многопоточность - PullRequest
       4

GLUT и многопоточность

1 голос
/ 01 ноября 2010

если у меня есть mainthread, который устанавливает окно GLUT, а затем создает рабочий поток для выполнения вычислений, и во время вычислений некоторых событий в рабочем потоке я хочу обновить свое окно GLUT.Как я могу это сделать?По-видимому, я не могу вызывать функции перенасыщения напрямую из рабочего потока.

Я хотел бы установить какой-нибудь флаг 'updateflag', который будет проверяться в цикле бездействия glut, и если он установлен, то перерисовывать окно GLUT, но, по-видимому,он также не работает для вызова перенасыщенных функций из цикла простоя (или, по крайней мере, этого не следует делать).

Итак - как правильно это сделать?

спасибо!

1 Ответ

0 голосов
/ 01 ноября 2010

Это распространенная проблема с большинством каркасов GUI (большинство из них обычно не являются поточно-ориентированными).

Нормальным решением является отправка вызовов в основной цикл событий.Я не уверен, какую библиотеку потоков вы используете (у некоторых, вероятно, будет концепция делегатов и т. Д.), Но в вашем случае, вероятно, это будет делать простая очередь событий.

И да, вы можете перерисовать окно изфункция холостого хода.По крайней мере, я всегда так делал ...

...