1

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

在此处输入图像描述

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

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

谢谢你的时间。此致。

4

3 回答 3

1

最直接的解决方案是创建一个没有边框和装饰(标题栏、按钮等)的全屏窗口。如果您想要实际的图形输出,使用 X11 没有任何问题。尽管在 Internet 上流传着一些传闻,但 Xorg X11 服务器实际上是相当轻量级的。

如果您真的想不使用 X11,那么您应该查看 kmscube 演示https://cgit.freedesktop.org/mesa/kmscube/tree/之类的东西,它直接在显示器上执行 OpenGL,无需图形服务器或窗口系统介于两者之间。

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

于 2018-09-26T06:54:32.573 回答
0

Qt 有一个名为 eglfs 的平台后端,通过使用 EGL 和 kms,它可以让您的应用程序在单个屏幕上全屏运行,而且开销很小。应该可以很好地与您想要做的任何 OpenGL 东西配合使用。

您只需像平常一样编写 Qt 应用程序,然后./myapp -platform eglfs从 tty 启动它。

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

于 2018-10-03T07:12:58.743 回答
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

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

于 2018-09-26T07:04:18.913 回答