0

考虑到当前设置,我有一个问题:

  • Yocto Linux 上iMX6
  • 既不是窗口管理器,也不是显示管理器
  • 一个功能齐全的 Qt 应用程序,在 Debian 9 上测试

该应用程序包含两个主要元素:

  • 一部分,带有GStreamerimxg2dvideosink
  • 一个半透明的 Qt Overlay,应该显示在流上

问题:

如何在流上显示叠加层,同时将两个部分都全屏显示(填满整个屏幕)?可能的解决方案:

  • /dev/fb1作为覆盖/dev/fb0(如何将单个应用程序拆分为两个fb?)
  • 使用显示管理器?
  • 使用窗口管理器?
  • linuxfb而不是eglfs

我当前(不工作)的解决方案:

  • 使用-platform eglfs
  • 该应用程序将首先启动GStreamer,然后显示覆盖
4

1 回答 1

2

我自己找到了解决方案。分享如下:

1) 运行 Qt 应用程序/dev/fb1

  • export QT_QPA_EGLFS_FB=/dev/fb1(指定/dev/fb1eglfs帧缓冲区)
  • echo 0 > /sys/class/graphics/fb1/blank(非空白帧缓冲区)
  • fbset -fb /dev/fb1 --geometry <your geometry here>(设置帧缓冲几何)
  • ./YourApplication -platform eglfs(运行应用程序)

如果您想要完全不透明度同时具有完全透明的覆盖部分,请使用颜色键。

2) 运行 GStreamer /dev/fb0

  • gst-launch-1.0 videotestsrc ! imxg2dvideosink framebuffer=/dev/fb0

这是eglfs. 其他可能性是linuxfb

于 2018-02-01T14:57:53.970 回答