2010-06-14 122 views
20

如何在沒有X-Window系統的Linux平臺上使用OpenGL,我可以直接將OpenGL圖形發送到Framebuffer設備?在沒有X-Window系統的情況下使用OpenGL

有項目命名爲DirectFB(Direct FrameBuffer)。使用DirectFB我們可以做到這一點,但DirectFB需要每個硬件的驅動程序,並且我想要使用只有Linux驅動程序的圖形卡。

+2

爲什麼要避免使用X?如果你需要OpenGL,你真的需要X ...如果它只是「我希望它儘可能快」,你不需要擺脫X,只是不啓動合成器或桌面環境,只運行您的應用程序在X內。另外,如果它是「我想要速度」,X很可能不會成爲瓶頸,因爲DRI渲染幾乎完全繞過了它。 – Spudd86 2010-06-16 13:58:01

+3

你知道嗎,當你啓動xi需要很多秒的時間來加載並且它不適合嵌入式平臺 – user366250 2010-06-16 18:54:17

+0

相關http://stackoverflow.com/questions/3326641/opengl-without-x-org-in-linux – 2016-08-14 15:11:37

回答

3

正如你所說,你需要一個驅動程序來做到這一點。所有Linux圖形驅動程序中有99.9%使用X11,因此除非您的硬件具有DirectFB OpenGL驅動程序,否則您將無法使用X11。

+0

我的視頻芯片組是英特爾GM855,該芯片組具有普通的X驅動Linux驅動程序。它可以用於DirectFB – user366250 2010-06-15 21:02:18

+0

根據http://www.directfb.org/index.php?path=Projects%2FDirectFBGL,沒有。 – 2010-06-15 21:37:04

+0

那我該怎麼辦? 您是否看到MyOS X-Less? http://www.geocities.com/ze_aks/myos。html – user366250 2010-06-15 23:18:58

0

我在Linux中使用SDL(簡單直接媒體層)進行OpenGL編程。這site有一些很好的教程,讓你設置。使用SDL的一個優點是它可以跨平臺移植,因此一旦你在Linux上運行了一些東西,只要你在那裏安裝了SDL,它就會直接轉移到Windows上。

+0

我知道SDL,但SDL在X Window中運行,不僅與Framebuffer Device – user366250 2010-06-15 18:46:09

+0

明白了,我不明白你不能使用X. – Rich 2010-06-16 14:27:13

0

您可以使用Mesa進行基於幀緩衝區的軟件渲染。

+0

怎麼樣?!硬件加速了嗎?! – user366250 2010-06-17 19:56:54

+0

@ user366250:沒有。 *軟件*渲染。 – genpfault 2010-06-17 20:31:52

+0

Mesa是硬件和軟件 – 2016-09-13 03:15:01

8

我這是怎麼了詳細做了它在我的Ubuntu 11.04:

sudo apt-get install xutils-dev libpciaccess-dev x11proto-dri2-dev x11proto-gl-dev libxdamage-dev libxfixes-dev 
: 1使用以下命令安裝的依賴關係

2- mesa庫需要libdrm版本> = 2.4.24,這在ubuntu 11.04中不可用pository(舊版本可用),所以你必須下載源代碼,使用下面的命令建立它:

./configure 
make 
make install 

3下載檯面庫中,然後用下面的命令編譯: 的./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'

相關問題