24

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

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

4

5 回答 5

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'

于 2011-09-07T15:53:55.443 回答
6

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

基本上,您的内核应该支持帧缓冲区,并且您可以在 DirectFB 之上使用 SDL。

这些线程没问题:

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

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

于 2010-09-13T17:55:20.773 回答
4

正如您所说,您需要一个驱动程序来执行此操作。所有 Linux 图形驱动程序中有 99.9% 使用 X11,因此除非您的硬件有 DirectFB OpenGL 驱动程序,否则您只能使用 X11。

于 2010-06-14T11:44:22.823 回答
0

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

于 2010-06-14T15:55:50.337 回答
0

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

于 2010-06-14T17:48:06.553 回答