У меня есть работающее приложение Ogre C ++. Что я хочу сделать, это запустить другие приложения из моего приложения.
Например, когда я нажимаю какую-то кнопку в моем приложении, оно должно запустить другую программу.
Я использую сочетание системного вызова fork и exec, и это работает, но с некоторыми проблемами.
Я, например, попытался сделать это с xbmc, и он запускает это приложение, но дело в том, что фокус ввода не переходит автоматически в окно xbmc, даже когда он работает в полноэкранном режиме. Мне нужно использовать комбинацию Alt + Tab, чтобы вручную придать ей фокус.
То же самое, когда я выхожу из xbmc, мне нужно вручную вернуть фокус в окно приложения Ogre.
Можно ли запускать такие программы контролируемым образом из приложения Ogre? Если да, то как?
(Ubuntu 12.04 с CEGUI, OIS & OGRE)
Обработка фокуса в разных окнах — это не рендеринг и, следовательно, не задача, связанная с Ogre, а то, что необходимо обрабатывать на уровне ОС.
Таким образом, вам нужно будет найти некоторые специфичные для платформы команды, которые позволят вам изменить фокус и вызвать их из приложения Ogre после создания нового окна приложения.
Других решений пока нет …