2009-09-16 8 views
0

J'ai une application C/C++ utilisant la bibliothèque GLFW sur un périphérique de type netbook exécutant Ubuntu 8.10.Le programme OpenGL/X-Window se bloque pendant la création de la fenêtre

Pour autant que je comprenne la source de la bibliothèque GLFW, elle crée sa fenêtre en utilisant des appels à la bibliothèque X-Window.

Nous n'utilisons aucun bureau sur la machine, mais nous nous connectons à un terminal et démarrons un serveur X en arrière-plan. Lorsque vous exécutez l'application compilée à partir d'un téléscripteur * sur la plate-forme cible lors de l'appel à

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

les arrêts d'application. Il ne plante pas. Lorsque vous passez à la fenêtre X en appuyant sur Ctrl + Alt + F7, l'application continue normalement.

Ce qui pourrait causer ce comportement étrange?

BEGIN_EDIT:

Maintenant, je suis tout à fait sûr que le problème est lié à la configuration soit Ubuntu ou le x-serveur. Lorsque je tente de lancer

glxinfo 

dans le shell la commande se bloque aussi jusqu'à ce que je passe à la fenêtre X en appuyant sur CTRL + ALT + F7. Quand je retourne à mon shell après avoir appuyé sur les touches, la commande est terminée.

Se pourrait-il que le serveur X soit mis en veille en mode console?

END_EDIT;

Répondre

0

Si le serveur de la fenêtre X s'exécute en arrière-plan, il ne possède pas (évidemment) l'affichage. Ainsi, il ne peut pas répondre aux demandes jusqu'à son retour au premier plan.

Ce serait mon attente au moins. Vous ne pouvez pas demander à un serveur d'affichage d'ouvrir une fenêtre si ce serveur d'affichage ne possède pas réellement le matériel d'affichage au moment de la demande.

Blocage jusqu'à ce qu'il reprenne le contrôle du matériel semble tout à fait raisonnable pour moi.

0

Un gestionnaire de connexion est-il exécuté sur le serveur X? Ils vont généralement saisir le serveur X pour un usage exclusif. Essayez de vous connecter et voyez si cela fait une différence.

Questions connexes