Ogre3d restoreConfig вызывает зависание приложения в Ubuntu - PullRequest
2 голосов
/ 27 января 2010

Создание приложения для Ubuntu с использованием Ogre3D, CEGUI, OIS, которое теперь все компилируется и работает, как и ожидалось. Запустив базовое приложение, я решил создать собственный файл конфигурации, в котором я могу хранить как графические параметры (например, разрешение, полноэкранный режим и т. Д.), Так и другие настраиваемые параметры, которые мне понадобятся в приложении.

В качестве отправной точки я изменил с вызова mRoot-> showConfigDialog () при каждом запуске на:

if(!mRoot->restoreConfig())
    mRoot->showConfigDialog();

это было предназначено для восстановления конфигурации из файла 'ogre.cfg', который существует, и так оно и было, но получил загрузку текстуры скайбокса при первом создании сцены и просто сидел там, ничего не делая.

Так как это было совсем не то, что я хотел, я попытался настроить их вручную, например:

RenderSystem *rs = mRoot->getRenderSystemByName("OpenGL Rendering Subsystem");
mRoot->setRenderSystem(rs);
rs->setConfigOption("Full Screen","No");
rs->setConfigOption("Video Mode","1024 x 768");

Они соответствуют настройкам из 'ogre.cfg', которые я использовал ранее из функции showConfigDialog (). У меня возникла та же проблема с этой ручной настройкой, но при загрузке текстур скайбокса она просто останавливается.

Я не могу понять, почему эти изменения имеют какое-либо отношение к тому, как работает приложение, и, поскольку OIS захватывает ввод и привязывает мышь к экрану, у меня возникают проблемы при попытке отладить его с помощью gdb.

1 Ответ

1 голос
/ 27 января 2010

Что касается блокировки мыши, вы можете запустить GDB на другом дисплее. Это может быть либо дисплей на том же компьютере (включая такие параметры, как Xephyr , которые создают виртуальные дисплеи, вложенные в текущий дисплей, либо просто второй сеанс на другом дисплее - если у вас есть работающий .xinitrc, выполняющий два или три сеанса X одновременно просты), или это может быть на другом компьютере в вашей сети (т. е. через ssh -X).

...