Программа OpenGL / X-Window зависает при создании окна - PullRequest
0 голосов
/ 16 сентября 2009

У меня есть приложение C / C ++, использующее библиотеку GLFW на нетбуковоподобном устройстве под управлением Ubuntu 8.10.

Насколько я понимаю источник библиотеки GLFW, она создает свое окно с помощью вызововбиблиотека X-Window.

Мы не используем какой-либо рабочий стол на компьютере, но входим в tty и запускаем X-сервер в фоновом режиме.При запуске скомпилированного приложения из tty * на целевой платформе во время вызова

glfwOpenWindow( ... );
  glXQueryExtension( ...);
    _glfwChooseVisual( ... );
       XGetVisualInfo( ... );

приложение останавливается.Это НЕ вылетает.При переключении в X-Window, нажав Ctrl + Alt + F7, приложение продолжает работать нормально.

Что может вызвать это странное поведение?

BEGIN_EDIT:

Теперь я совершенно уверен, что проблема связана с настройкой Ubuntu или x-сервера.Когда я пытаюсь запустить

glxinfo

в оболочке, команда также зависает, пока я не переключаюсь в X-окно, нажимая CTRL + ALT + F7.Когда я возвращаюсь к своей оболочке после нажатия клавиш, команда заканчивается.

Может ли быть так, что X-сервер переводится в спящий режим в режиме консоли?

END_EDIT;

Ответы [ 2 ]

0 голосов
/ 14 октября 2009

Работает ли менеджер входа в систему на X-сервере? Обычно они получают X-сервер для эксклюзивного использования. Попробуйте войти в систему и посмотреть, если это имеет значение.

0 голосов
/ 07 октября 2009

Если сервер X Window работает в фоновом режиме, он (очевидно) не владеет дисплеем. Таким образом, он не может отвечать на запросы, пока не вернется на передний план.

Это было бы моим ожиданием по крайней мере. Вы не можете попросить сервер дисплея открыть окно, если на момент запроса этот сервер дисплея фактически не владел оборудованием дисплея.

Блокировка до тех пор, пока она не получит контроль над аппаратным обеспечением, звучит для меня совершенно разумно.

...