如何在树莓派上不带桌面的情况下运行c代码(在代码块上)?(例如omxplayer的工作)

时间:2018-09-26 06:36:41

标签: c opengl-es debian x11 openvg

对不起,我的英语不好。我在树莓派pi3(debian)上使用opengl工作3d形状。我想运行不在桌面(或窗口)上使用的代码。我搜寻了一下,但困惑了。简而言之,我想运行我的代码以及下图中的代码。

enter image description here

当我搜索此主题时,我了解到有关EGL库的信息,但我不知道是否可以使用它。

如果您在知道Openmax不使用窗口之前使用过OpenMAX库。所有图像或视频都可以在控制台模式下运行。您不需要任何桌面。我不知道这是否可以通过这种方式使用Opengl?(Opengl是否可以像OpenMAX库一样运行)如果有任何方法,我应该如何构建代码?我想在没有桌面的情况下渲染图像。我要使用控制台模式。

谢谢您的时间。最好的问候。

3 个答案:

答案 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启动它即可。

http://doc.qt.io/qt-5/embedded-linux.html#eglfs