如何在没有X-Window系统的Linux平台上OpenGL,我可以直接将OpenGL图形发送到帧缓冲设备吗?
项目名为DirectFB(Direct FrameBuffer)。使用DirectFB我们可以这样做,但DirectFB需要每个硬件的驱动程序,我想使用只有Linux驱动程序的显卡。
答案 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
答案 2 :(得分:4)
正如你所说,你需要一个司机才能做到这一点。所有Linux图形驱动程序中有99.9%使用X11,因此除非您的硬件具有DirectFB OpenGL驱动程序,否则您将无法使用X11。
答案 3 :(得分:0)
我在Linux中使用SDL(简单直接媒体层)进行OpenGL编程。这个site有一些很好的教程可以让你进行设置。使用SDL的一个优点是它可以跨平台移植,因此一旦你在Linux上运行某些东西,只要你在那里安装了SDL,它就会转移到Windows。
答案 4 :(得分:0)
您可以使用Mesa进行基于帧缓冲的软件渲染。