Использование OpenGL без системы X-Window - PullRequest
21 голосов
/ 14 июня 2010

Как открыть OpenGL на платформе Linux без системы X-Window, могу ли я отправлять графики OpenGL непосредственно на устройство Framebuffer?

Существует проект с именем DirectFB (Direct FrameBuffer). С DirectFB Мы можем сделать это, но DirectFB нужен драйвер для каждого оборудования, и я хочу использовать графическую карту, которая имеет только драйвер Linux.

Ответы [ 5 ]

8 голосов
/ 07 сентября 2011

Вот как я сделал это в моем Ubuntu 11.04 подробно: 1- Установите зависимости, используя команду:

sudo apt-get install xutils-dev libpciaccess-dev x11proto-dri2-dev x11proto-gl-dev libxdamage-dev libxfixes-dev

2- Для библиотеки mesa требуется версия libdrm> = 2.4.24, которая не являетсядоступно в репозитории ubuntu 11.04 (доступна более старая версия), поэтому вам необходимо скачать исходный код и собрать его с помощью следующих команд:

./configure
make
make install

3 - загрузить библиотеку меза и затем скомпилировать ее с помощью следующих команд:./configure --prefix = install_directory

make realclean
make linux-fbdev
sudo make install

будьте осторожны при выборе install_directory, чтобы не перезаписывать системную меза-библиотеку.после этого скомпилируйте ваше приложение, используя параметры: -lGL -lOSMesa -ldl -L'install_directory/lib' -I'install_directory/include'

6 голосов
/ 13 сентября 2010

Очевидно, что SDL работает без X.

По сути, ваше ядро ​​должно иметь поддержку кадрового буфера, и вы можете использовать SDL поверх DirectFB.

Эти потоки в порядке:

http://lists.libsdl.org/pipermail/sdl-libsdl.org/2006-October/058305.html

http://forums.libsdl.org/viewtopic.php?t=4079

4 голосов
/ 14 июня 2010

Как вы сказали, для этого нужен драйвер. 99,9% всех графических драйверов Linux используют X11, поэтому, если у вас нет драйвера DirectFB OpenGL для вашего оборудования, вы застряли с использованием X11.

0 голосов
/ 14 июня 2010

Вы можете использовать Mesa для рендеринга программного обеспечения на основе кадрового буфера.

0 голосов
/ 14 июня 2010

Я использую SDL (Simple Direct Media Layer) для программирования OpenGL в Linux. На этом сайте есть несколько хороших учебников, которые помогут вам настроить. Одним из преимуществ использования SDL является то, что он будет портировать на разные платформы, поэтому, как только вы запустите что-то, работающее в Linux, он будет перенесен прямо в Windows, если на нем установлен SDL.

...