Как запустить код c (на кодовых блоках) без рабочего стола на малине? (Как работа omxplayer) - PullRequest
0 голосов
/ 26 сентября 2018

Извините, мой плохой английский.Я работаю в 3D-форме с opengl на Raspberry Pi3 (Debian) некоторое время.Я хочу, чтобы мой код не использовался на рабочем столе (или в окне).Я искал, но озадачил мой разум.В двух словах я хочу запустить свой код так же, как на картинке ниже.

введите описание изображения здесь

Когда я искал эту тему, я видел о библиотеке EGL, но я не знаю, смогу ли я использовать это.

Если вы использовали библиотеку OpenMAX до того, как узнали, что openmax не использует window.Все изображения или видео могут работать в режиме консоли.Тебе не нужен досктоп.Интересно, есть ли способ, которым я могу использовать Opengl таким образом? (Может ли Opengl работать как библиотека OpenMAX или нет) Если есть какой-нибудь способ Как мне построить свой код?Я хочу сделать свое изображение без рабочего стола.Я хочу использовать консольный режим.

Спасибо, что уделили время.С наилучшими пожеланиями.

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Сначала необходимо запустить сервер отображения.То, что вам нужно, может работать с «xinit», который вручную запускает сервер xorg, после чего я подозреваю, что вы должны запустить «openbox», который является оконным менеджером.Таким образом, ваше настольное приложение должно работать как есть, без изменений

Рекомендуется создать сценарий оболочки для запуска приложения, который может выглядеть следующим образом:

set -e 
xset s off
xset -dpms
xset s noblank
openbox &
cd /home/your_applicaton_directory
your_executable 2>/dev/null >/dev/null

Сохраните этот сценарий и отметьте его как исполняемый с

chmod +x 

Затемпопробуйте запустить это:

xinit /full_path_to_above_script

Надеюсь, это немного поможет ...:)

0 голосов
/ 03 октября 2018

Qt имеет платформу, называемую eglfs, которая позволяет вашему приложению работать в полноэкранном режиме на одном экране, используя EGL и км с минимальными издержками.Должно прекрасно работать с любым материалом OpenGL, который вы хотите сделать.

Вы просто запрограммируете приложение Qt, как обычно, и запускаете его с ./myapp -platform eglfs из tty.

http://doc.qt.io/qt-5/embedded-linux.html#eglfs

0 голосов
/ 26 сентября 2018

Наиболее простым решением было бы просто создать полноэкранное окно, в котором нет рамки и декораций (заголовок, кнопки и т. Д.).Если вам нужен реальный графический вывод, нет ничего плохого в использовании X11.Несмотря на некоторые слухи, распространяемые в Интернете, серверы Xorg X11 на самом деле довольно легковесны.

Если вы действительно хотите обойтись без X11, то вам следует взглянуть на такие вещи, как демоверсия kmscube https://cgit.freedesktop.org/mesa/kmscube/tree/, котораяOpenGL прямо на дисплей, без графического сервера или оконной системы между ними.

Если вы хотите, чтобы он был немного более абстрактным, взгляните на то, как композиторы Wayland взаимодействуют с дисплеем.Разработчики Sway Wayland compositor разработали хорошую библиотеку абстракций для этого: https://github.com/swaywm/wlroots

...