使用OpenGL而不使用X-Window系统

如何在没有X-Window系统的Linux平台上使用OpenGL,我可以直接发送OpenGLgraphics到Framebuffer设备吗?

有项目命名DirectFB(Direct FrameBuffer)。 使用DirectFB我们可以做到这一点,但DirectFB需要为每个硬件的驱动程序,我想用户只有Linux驱动程序的graphics卡。

这是我在我的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 – 下载mesa库,然后使用以下命令进行编译:./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'

显然可以让SDL在没有X的情况下运行。

基本上,你的内核应该有framebuffer的支持,你可以在DirectFB之上使用SDL。

这些线程是好的:

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

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

正如你所说,你需要一个司机来做到这一点。 所有Linux图形驱动程序中有99.9%使用X11,所以除非你的硬件有DirectFB OpenGL驱动程序,否则你会被困在使用X11的。

我在Linux中使用SDL (简单直接媒体层)进行OpenGL编程。 这个网站有一些很好的教程,让你成立。 使用SDL的一个优点是它可以跨平台移植,所以一旦你在Linux上运行了一些东西,只要你在那里安装了SDL,就可以直接转移到Windows上。

您可以使用Mesa进行基于帧缓冲区的软件渲染。