2010-06-14 3 views
20

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

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

+2

Почему вы хотите избежать X? Если вам нужен OpenGL, вам действительно нужно X ... Если это просто «Я хочу, чтобы он работал как можно быстрее», вам не нужно избавляться от X, просто не запускайте компоновщик или среду рабочего стола и не запускайте ваше приложение внутри X. Также, если это «Я хочу скорость», X вряд ли станет узким местом, поскольку рендеринг DRI в значительной степени обходит его полностью. – Spudd86

+3

Знаете ли вы, когда вы начинаете xi, занимаете много секунд до загрузки и не подходят для встроенных платформ. – user366250

+0

http://stackoverflow.com/questions/3326641/opengl-without-x-org-in-linux –

ответ

3

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

+0

my видео-чипсет Intel GM855, этот чипсет имеет стандартный Linux-драйвер для X. может ли он использоваться с DirectFB – user366250

+0

Согласно http://www.directfb.org/index.php?path=Projects%2FDirectFBGL, нет. –

+0

так что я могу сделать? сделал и посмотрел MyOS X-Less? http://www.geocities.com/ze_aks/myos.html – user366250

0

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

+0

Я знаю SDL, но SDL работает в X Window и не только с устройством Framebuffer – user366250

+0

Получил, я не понял, что вы не могли использовать X. – Rich

0

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

+0

Как?! Это аппаратное ускорение?! – user366250

+0

@ пользователь366250: Nope. * Программное обеспечение * рендеринг. – genpfault

+0

Mesa - это аппаратное и программное обеспечение –

6

По-видимому, можно иметь SDL работает без X.

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

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

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

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

+0

Итак, какая библиотека среди предложенных выше (directFB, SDL) обеспечивает интерфейс/реализацию OpenGL ? Нет ... Меса делает. – plesiv

8

Это, как я сделал это в моей убунту 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 re pository (старая версия доступна), поэтому вы должны загрузить исходный код и построить его с помощью следующих команд:

./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'

Смежные вопросы