如何在Linux平台上使用OpenGL而不需要X窗口系统?我可以直接将OpenGL图形发送到帧缓冲设备吗?
有一个名为DirectFB(直接帧缓冲)的项目。使用DirectFB,我们可以实现这一点,但是DirectFB需要为每个硬件安装驱动程序,而我想使用的显卡只有Linux驱动程序。
如何在Linux平台上使用OpenGL而不需要X窗口系统?我可以直接将OpenGL图形发送到帧缓冲设备吗?
有一个名为DirectFB(直接帧缓冲)的项目。使用DirectFB,我们可以实现这一点,但是DirectFB需要为每个硬件安装驱动程序,而我想使用的显卡只有Linux驱动程序。
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=安装目录
make realclean
make linux-fbdev
sudo make install
在选择install_directory
安装目录时要小心,以免覆盖系统的 Mesa 库。
然后使用以下选项编译您的应用程序:-lGL -lOSMesa -ldl -L'install_directory/lib' -I'install_directory/include'
显然可以在没有X的情况下运行SDL。
基本上,您的内核应该具有帧缓冲支持,并且您可以在DirectFB之上使用SDL。
这些线程是可以的:
http://lists.libsdl.org/pipermail/sdl-libsdl.org/2006-October/058305.html
正如你所说,你需要一个驱动程序来完成这个任务。99.9%的Linux图形驱动程序使用X11,所以除非你有一个适用于你的硬件的DirectFB OpenGL驱动程序,否则你只能使用X11。
您可以使用Mesa进行基于帧缓冲的软件渲染。