2009-09-16 60 views
0

我在運行Ubuntu 8.10的類似上網本的設備上使用GLFW庫的C/C++應用程序。OpenGL/X-Window程序在窗口創建期間掛起

據我瞭解GLFW庫的來源,它使用調用X-Window庫創建它的窗口。

我們不使用機器上的任何桌面,而是登錄到tty並在後臺啓動X服務器。在調用期間從目標平臺上的tty *運行已編譯的應用程序時

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

應用程序暫停。它不會崩潰。按Ctrl + Alt + F7切換到X-Window時,應用程序正常繼續。

什麼會導致這種奇怪的行爲?

BEGIN_EDIT:

現在我相當肯定的問題與Ubuntu的兩種或X服務器的配置。當我嘗試在shell中運行

glxinfo 

命令還掛起,直到我按CTRL + ALT + F7切換到X窗口。當我按下鍵後返回到shell時,命令已完成。

在控制檯模式下,X服務器是否處於「睡眠」狀態?

END_EDIT;

回答

0

如果X窗口服務器在後臺運行,它(顯然)沒有自己的顯示器。因此它不能回覆請求,直到它回到前臺。

這至少是我的期望。如果該顯示服務器在請求時實際上並不擁有顯示硬件,則不能要求顯示服務器打開一個窗口。

阻塞,直到它得到了硬件的控制權交還給聽起來完全合理的給我。

0

是一個登錄管理器中X服務器上運行?他們通常會抓住X服務器專用。嘗試登錄,看看是否有所作爲。