Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: west от Ноябрь 16, 2008, 20:20



Название: GL засунуть в нить
Отправлено: west от Ноябрь 16, 2008, 20:20
То что надо рисовать в ГПИ я знаю. А вот чего функции OpenGL'я по расчету каких-нибудь массивов в потоках валятся? Или весь Gl потоконебезопасный? Я в нем вообще не спец, так, докручиваю готовый код. Пытаюсь вот ускорить отделные моменты, или хоть GUI пользователя освободить во время расчета, фацетов, например. Подскажите, плз, потоки и GL  как-то совместимы (настройки, например), или на будет заводить кучу дочерних процессов?


Название: Re: GL засунуть в нить
Отправлено: Sergeich от Ноябрь 16, 2008, 21:27
А под какую платформу надо? если под Х, то и сами иксы потоконебезопасны, если не пользовать XInitThreads. Если под вынь, глянь сюды: http://support.microsoft.com/kb/128122


Название: Re: GL засунуть в нить
Отправлено: west от Ноябрь 17, 2008, 11:49
Платформа Linux... А XInitThreads может помочь?


Название: Re: GL засунуть в нить
Отправлено: Sergeich от Ноябрь 17, 2008, 15:03
А XInitThreads может помочь?
Если ты юзаешь иксовые вызовы из разных потоков (в том числе GLX-вызовы), то просто должен ее использовать.


Название: Re: GL засунуть в нить
Отправлено: west от Ноябрь 17, 2008, 15:19
Сейчас я вызываю GLX функцию (gluScaleImage) в QThread нитке. Использовать  XInitThreads для таких дел? А приложение от QApplication может остаться? Надо порыться по поводу  XInitThreads, честно говоря...


Название: Re: GL засунуть в нить
Отправлено: west от Ноябрь 17, 2008, 15:29
В man'е по XInitThreads() :
"This function must be the first Xlib function a multi-threaded program calls, and it must complete before any other Xlib call is made." - чего-то я не въехал, пишу, получается XInitThreads() в main()  своего приложения, и все заработало?