如何在没有桌面的情况下在树莓上运行c代码(在代码块上)?(像omxplayer的工作)

问题描述 投票:1回答:3

抱歉,我的英语不好。我在覆盆子pi3(debian)上用opengl工作了3d形状了一段时间。我想运行我的代码不要在桌面(或窗口)上使用。我搜索但是困惑了我的想法。简而言之,我想运行我的代码以及下面的图像。

enter image description here

当我搜索这个主题时,我已经看过EGL库,但我不知道我是否可以使用它。

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

谢谢你的时间。最好的祝福。

c opengl-es debian x11 openvg
3个回答
1
投票

最直接的解决方案是创建一个没有边框和没有装饰(标题栏,按钮等)的全屏窗口。如果你想要实际的图形输出,使用X11没有任何问题。尽管互联网上传出了一些传闻,但Xorg X11服务器实际上非常轻巧。

如果你真的想要没有X11,那么你应该看看像kmscube demo https://cgit.freedesktop.org/mesa/kmscube/tree/这样的东西,它直接在显示器上运行OpenGL,而不需要图形服务器或窗口系统。

如果你想让它更抽象一点,那么看看Wayland合成器如何与显示器对话。 Sway Wayland合成器的开发人员为此开发了一个很好的抽象库:https://github.com/swaywm/wlroots


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

希望这个对你有帮助... :)


0
投票

Qt有一个名为eglfs的平台后端,它允许你的应用程序通过使用EGL和kms以非常小的开销在一个屏幕上全屏运行。应该与你想做的任何OpenGL工作很好地配合。

你只需像普通的那样编写一个Qt应用程序,然后从tty用./myapp -platform eglfs启动它。

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

© www.soinside.com 2019 - 2024. All rights reserved.