在没有X-Window系统的情况下使用OpenGL

时间:2010-06-14 11:01:50

标签: linux opengl framebuffer

如何在没有X-Window系统的Linux平台上OpenGL,我可以直接将OpenGL图形发送到帧缓冲设备吗?

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

5 个答案:

答案 0 :(得分:8)

这就是我在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时要小心,这样就不会覆盖系统的mesa库。 然后使用以下选项编译您的应用程序:-lGL -lOSMesa -ldl -L'install_directory/lib' -I'install_directory/include'

答案 1 :(得分:6)

显然可以让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

答案 2 :(得分:4)

正如你所说,你需要一个司机才能做到这一点。所有Linux图形驱动程序中有99.9%使用X11,因此除非您的硬件具有DirectFB OpenGL驱动程序,否则您将无法使用X11。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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