c - 如何在没有桌面的情况下在树莓派上运行 c 代码(在代码块上)?(就像 omxplayer 的工作)
问题描述
对不起我的英语不好。我在树莓派 pi3(debian)上使用 opengl 处理 3d 形状一段时间。我想运行我的代码不要在桌面(或窗口)上使用。我搜索但困惑我的想法。简而言之,我想运行我的代码以及下图中的代码。
当我搜索这个主题时,我看到了 EGL 库,但我不知道我是否可以使用它。
如果您在知道 openmax 不使用窗口之前使用过 OpenMAX 库。所有图像或视频都可以在控制台模式下运行。你不需要任何桌面。我想知道有没有办法以这种方式使用 Opengl?(Opengl 是否可以像 OpenMAX 库一样运行)如果有任何方法我应该如何构建我的代码?我想在没有桌面的情况下渲染我的图像。我想使用控制台模式。
谢谢你的时间。此致。
解决方案
最直接的解决方案是创建一个没有边框和装饰(标题栏、按钮等)的全屏窗口。如果您想要实际的图形输出,使用 X11 没有任何问题。尽管在 Internet 上流传着一些传闻,但 Xorg X11 服务器实际上是相当轻量级的。
如果您真的想不使用 X11,那么您应该查看 kmscube 演示https://cgit.freedesktop.org/mesa/kmscube/tree/之类的东西,它直接在显示器上执行 OpenGL,无需图形服务器或窗口系统介于两者之间。
如果你想让它更抽象一点,那么看看 Wayland 合成器是如何与显示器对话的。Sway Wayland 合成器的开发人员为此开发了一个不错的抽象库:https ://github.com/swaywm/wlroots
推荐阅读
- python - Scrapy 如何使用 itemloader 填充空项目?
- asp.net-core - 如何在类库项目中使用 AspNetCore 3.0 功能/组件
- html - 应用 type=password 时文本框失去 CSS 样式
- python - 如何调用数组中的所有图像?
- javascript - Eventemitter 循环依赖改进(已关闭)
- python - TypeError: unhashable type: 'dict' for some 50% of the logic where the remaining 50% is working fine
- python - 如何逐行读取并对每一行进行一些操作
- laravel - laravel 验证失败后显示旧的帖子数据
- java - 如何在 JPA 中验证整数为空或非空?
- unreal-engine4 - 有没有办法将相机输出设置为一帧?