Использование OpenGL без системы X-Window
Как OpenGL на платформе Linux без системы X-Window, могу ли я напрямую отправлять графику OpenGL на устройство Framebuffer?
Существует проект, названный DirectFB (Direct FrameBuffer). С DirectFB Мы можем это сделать, но DirectFB нужно для драйвера для каждого оборудования, и я хочу, чтобы пользовательская графическая карта имела только драйвер Linux.
Ответы
Ответ 1
Вот как я это сделал в своем убунту 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-Загрузите библиотеку mesa и затем скомпилируйте ее, используя следующие команды:
. /configure --prefix = install_directory
make realclean
make linux-fbdev
sudo make install
будьте осторожны, когда вы выбираете каталог install_directory, чтобы не перезаписывать библиотеку системы mesa.
после этого скомпилируйте свое приложение, используя параметры: -lGL -lOSMesa -ldl -L'install_directory/lib' -I'install_directory/include'
Ответ 2
По-видимому, возможно, что SDL работает без X.
В принципе, ваше ядро должно иметь поддержку фреймбуфера, и вы можете использовать SDL поверх DirectFB.
Эти потоки в порядке:
http://lists.libsdl.org/pipermail/sdl-libsdl.org/2006-October/058305.html
http://forums.libsdl.org/viewtopic.php?t=4079
Ответ 3
Как вы сказали, вам нужен драйвер для этого. 99,9% всех графических драйверов Linux используют X11, поэтому, если у вас нет драйвера DirectFB OpenGL для вашего оборудования, вы застряли в использовании X11.
Ответ 4
Я использую SDL (простой Direct Media Layer) для программирования OpenGL в Linux. Этот сайт содержит несколько полезных уроков, которые помогут вам настроить. Одним из преимуществ использования SDL является то, что он будет переноситься через платформы, поэтому, как только вы получите что-то, работающее в Linux, оно будет передано прямо в Windows, если у вас там установлен SDL.
Ответ 5
Вы можете использовать Mesa для рендеринга программного обеспечения на основе фреймбуфера.