在没有 X-Window 系统的情况下使用 OpenGL
如何在Linux平台上使用OpenGL 在没有X-Window系统的情况下,我可以将OpenGL图形直接发送到Framebuffer设备吗?
有一个名为 DirectFB(直接帧缓冲区)的项目。使用 DirectFB 我们可以做到这一点,但 DirectFB 需要每个硬件的驱动程序,而我想使用只有 Linux 驱动程序的显卡。
How to OpenGL on Linux Platform Without X-Window System, can I send OpenGL Graphics Directly to Framebuffer Device?
There Is Project Named DirectFB (Direct FrameBuffer). With DirectFB We can do this but DirectFB needs for driver for each hardware and I want to user a graphic card that only have Linux driver.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这是我在 ubuntu 11.04 中详细执行的方法:
1- 使用以下命令安装依赖项:
2- mesa 库需要 libdrm 版本 >= 2.4.24,该版本在 ubuntu 11.04 存储库中不可用(旧版本可用),因此您必须下载源代码并使用以下命令:
3-下载 mesa 库,然后使用以下命令编译它:
./configure --prefix=install_directory
选择 install_directory 时要小心,以免覆盖系统的 mesa 库。
之后使用以下选项编译您的应用程序:
-lGL -lOSMesa -ldl -L'install_directory/lib' -I'install_directory/include'
This is how i did it in my ubuntu 11.04 in detail:
1- Install the dependencies using the command:
2- The mesa library needs libdrm version >= 2.4.24 which is not available in the ubuntu 11.04 repository (older version is available) so you have to download the source and build it using the following commands:
3-Download mesa library and then compile it using the following commands:
./configure --prefix=install_directory
be careful when you choose the install_directory so that you don't overwrite the system's mesa library.
after that compile your application using the options :
-lGL -lOSMesa -ldl -L'install_directory/lib' -I'install_directory/include'
显然,SDL 可以在没有 X 的情况下运行。
基本上,您的内核应该具有帧缓冲区支持,并且您可以在 DirectFB 之上使用 SDL。
这些线程没问题:
http://lists.libsdl。 org/pipermail/sdl-libsdl.org/2006-October/058305.html
http://forums.libsdl.org/viewtopic.php?t=4079
Apparently is possible to have SDL running without X.
Basically, your kernel should have framebuffer support and you could use SDL on top of DirectFB.
These threads are ok:
http://lists.libsdl.org/pipermail/sdl-libsdl.org/2006-October/058305.html
http://forums.libsdl.org/viewtopic.php?t=4079
正如你所说,你需要一个驱动程序来做到这一点。 99.9% 的 Linux 图形驱动程序都使用 X11,因此除非您的硬件有 DirectFB OpenGL 驱动程序,否则您将不得不使用 X11。
As you said, you need a driver to do this. 99.9% of all Linux graphics drivers use X11, so unless you have a DirectFB OpenGL driver for your hardware, you are stuck with using X11.
我在 Linux 中使用 SDL(简单直接媒体层)进行 OpenGL 编程。这个网站有一些很好的教程可以帮助您进行设置。使用 SDL 的优点之一是它可以跨平台移植,因此一旦您在 Linux 上运行某些东西,只要您安装了 SDL,它就会直接转移到 Windows 上。
I use the SDL (Simple Direct Media Layer) for OpenGL programming in Linux. This site has some nice tutorials to get you set up. One advantage of using SDL is that it will port across platforms, so once you get something running on Linux, it'll transfer right over to Windows so long as you have SDL installed there.
您可以使用 Mesa 进行基于帧缓冲区的软件渲染。
You can use Mesa for framebuffer-based software rendering.