对不起,我的英语不好。我在树莓派pi3(debian)上使用opengl工作3d形状。我想运行不在桌面(或窗口)上使用的代码。我搜寻了一下,但困惑了。简而言之,我想运行我的代码以及下图中的代码。
当我搜索此主题时,我了解到有关EGL库的信息,但我不知道是否可以使用它。
如果您在知道Openmax不使用窗口之前使用过OpenMAX库。所有图像或视频都可以在控制台模式下运行。您不需要任何桌面。我不知道这是否可以通过这种方式使用Opengl?(Opengl是否可以像OpenMAX库一样运行)如果有任何方法,我应该如何构建代码?我想在没有桌面的情况下渲染图像。我要使用控制台模式。
谢谢您的时间。最好的问候。
答案 0 :(得分:1)
最直接的解决方案是创建一个没有边框且没有装饰(标题栏,按钮等)的全屏窗口。如果需要实际的图形输出,则使用X11没什么错。尽管Internet上散布了一些传闻,但Xorg X11服务器实际上是轻量级的。
如果您真的想没有X11,那么您应该看一下kmscube演示https://cgit.freedesktop.org/mesa/kmscube/tree/之类的东西,它直接将OpenGL用于显示,而没有图形服务器或窗口系统。
如果您希望它更抽象一些,请查看Wayland合成器如何与显示对话。 Sway Wayland合成器的开发人员为此开发了一个不错的抽象库:https://github.com/swaywm/wlroots
答案 1 :(得分:0)
您需要先启动显示服务器。 您需要的可以使用“ xinit”来手动启动xorg服务器,之后我怀疑您应该启动“ openbox”(即窗口管理器)。这样,您的桌面应用程序应按原样运行,无需更改。
最佳做法是创建用于启动应用程序的shell脚本,如下所示:
set -e
xset s off
xset -dpms
xset s noblank
openbox &
cd /home/your_applicaton_directory
your_executable 2>/dev/null >/dev/null
保存此脚本并将其标记为可执行文件
chmod +x
然后尝试运行此命令:
xinit /full_path_to_above_script
希望这会有所帮助...:)
答案 2 :(得分:0)
Qt有一个称为eglfs的平台后端,通过使用EGL和kms,您的应用程序可以在单个屏幕上全屏运行,而开销却很少。应该与您要执行的任何OpenGL工作良好配合。
您只需像普通的那样编写一个Qt应用程序,然后从tty中使用./myapp -platform eglfs
启动它即可。