抱歉,我的英语不好。我在覆盆子pi3(debian)上用opengl工作了3d形状了一段时间。我想运行我的代码不要在桌面(或窗口)上使用。我搜索但是困惑了我的想法。简而言之,我想运行我的代码以及下面的图像。
当我搜索这个主题时,我已经看过EGL库,但我不知道我是否可以使用它。
如果您使用OpenMAX库之前知道openmax不使用窗口。所有图像或视频都可以在控制台模式下运行。你不需要任何dosktop。我想知道有没有办法以这种方式使用Opengl?(Opengl可以像OpenMAX一样运行)如果有什么办法我应该如何构建我的代码?我想要渲染没有桌面的图像。我想使用控制台模式。
谢谢你的时间。最好的祝福。
最直接的解决方案是创建一个没有边框和没有装饰(标题栏,按钮等)的全屏窗口。如果你想要实际的图形输出,使用X11没有任何问题。尽管互联网上传出了一些传闻,但Xorg X11服务器实际上非常轻巧。
如果你真的想要没有X11,那么你应该看看像kmscube demo https://cgit.freedesktop.org/mesa/kmscube/tree/这样的东西,它直接在显示器上运行OpenGL,而不需要图形服务器或窗口系统。
如果你想让它更抽象一点,那么看看Wayland合成器如何与显示器对话。 Sway Wayland合成器的开发人员为此开发了一个很好的抽象库:https://github.com/swaywm/wlroots
您需要先启动显示服务器。你需要什么可以使用“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
希望这个对你有帮助... :)
Qt有一个名为eglfs的平台后端,它允许你的应用程序通过使用EGL和kms以非常小的开销在一个屏幕上全屏运行。应该与你想做的任何OpenGL工作很好地配合。
你只需像普通的那样编写一个Qt应用程序,然后从tty用./myapp -platform eglfs
启动它。