Название: [РЕШЕНО] Отрисовка OpenGL в отдельном потоке Отправлено: Vladimir от Февраль 21, 2012, 10:29 Доброго дня! Помогите пожалуйста решить такую задачу:
Необходимо рисовать средствами OpenGL в отдельном потоке на Qt. В версии Qt 4.8 это делать можно, исходя из статьи http://labs.qt.nokia.com/2011/06/03/threaded-opengl-in-4-8/ ! Но при работе под Linux возникают ошибки: Xlib: unexpected async reply (sequence 0x1fb)! X Error: GLXBadContextTag 158 Extension: 144 (Uknown extension) Minor opcode: 129 (Unknown request) Resource id: 0x1a00006 Причем тестовое приложение (MultiThread) запускалось и работало под OpenSUSE 11.0! Но рабочая программа, которую делаю также нормально отрисовывала под SUSE, но при открытии модального окна или раскрывающегося списка основного интерфейса программы аварийно завершалось.. вроде как эту проблему решил, при помощи http://forum.tuxx-home.at/viewtopic.php?f=10&t=565 но это оказалось не очень действенным решением, ибо начала через раз выскакивать другая (выше приведенная) ошибка и программа просто зависала.. Сейчас необходимо реализовать отрисовку для Linux CentOS 5.5 и только для него! В этом дистрибутиве тестовое приложение запускаться не хочет.. виснет с ошибкой X Error: GLXBadContextTag 158 Что можете посоветовать...??? Прикрепил тестовое приложение! Название: Re: Отрисовка OpenGL в отдельном потоке Отправлено: Vladimir от Февраль 21, 2012, 14:22 Неужели никто не сталкивался с подобным (( подскажите, хоть за что зацепиться..
Название: Re: Отрисовка OpenGL в отдельном потоке Отправлено: Bepec от Февраль 21, 2012, 14:52 Отпишу, ибо знаю как напрягает молчание в топике.
Я не имел дело с OpenGl, потому помочь тебе не могу, НО... Очень мало людей будут устанавливать linux и попытаться запустить проект (ещё и скомпилировать либки Qt под него). Увы. Сочувствую и желаю успехов в решении этой проблемы. Название: Re: Отрисовка OpenGL в отдельном потоке Отправлено: Vladimir от Февраль 21, 2012, 15:00 ну хоть на добром слове спасибо)
так не обязательно устанавливать и запускать.. просто может люди знают куда "смотреть" в такой ситуации.. похожая тема http://www.linux.org.ru/forum/development/530860, но что-то я не нашел для себя там решения.. здесь нужно на уровне разбираться и в программировании на Qt и в архитектуре Linux, а я пока новичок.. поэтому сложно! может еще кто откликнется =) Название: Re: Отрисовка OpenGL в отдельном потоке Отправлено: GreatSnake от Февраль 21, 2012, 15:05 В версии Qt 4.8 это делать можно, исходя из Ну а чего же так плохо статью читал?статьи http://labs.qt.nokia.com/2011/06/03/threaded-opengl-in-4-8/ ! Цитировать To use the new functionality on X11 you need to enable the Qt::AA_X11InitThreads application attribute to ensure that the underlying calls to GLX are thread-safe, but for Windows and Mac OS X it should work out of the box. Кстати, на 4.7 тоже будет работать. Нужно только до QApplication вызвать XInitThreads(). Проверено на CentOS 5.6 ) Название: Re: Отрисовка OpenGL в отдельном потоке Отправлено: Bepec от Февраль 21, 2012, 15:15 Во как ;) Стоило привлечь внимание к теме - и РРРАС.
Название: Re: Отрисовка OpenGL в отдельном потоке Отправлено: Vladimir от Февраль 21, 2012, 15:34 ДА! Действительно!!! Всем огроменное СПАСИБО!!! Нужно внимательно читать буржуйские тексты))) в примере кода на сайте все было, а я зациклился на примере скаченном с нета..
Решение Код: #include <qapplication.h> Еще раз СПАСИБО!!!!!!!! |