我们如何让 Qt 渲染到内存而不是设备?

pax*_*blo 5 embedded in-memory qt5

我有一个将 Qt 5.6 用于各种用途并在嵌入式设备上运行的应用程序。目前,我通过 eglfs 将其渲染到附加显示器上的 Linux 帧缓冲区,但我也希望能够获取数据并将其发送到单色 LED 显示单元(设备将具有该单元完整视频设备,切勿同时使用)。

根据我目前在网上发现的内容,最好的方法是:

  • 关闭抗锯齿;
  • 为 1 位/像素显示设备设置 Qt;
  • 选择 1bpp 字体,不允许使用灰度;和
  • 以某种方式捕获 Qt 生成的图形场景,以便我可以将其传输到显示单元。

这只是我遇到的最后一个问题。我怀疑我需要创建一些描述的表面并将其注入 Qt 显示“堆栈”,但我找不到任何关于如何执行此操作的好示例。

如何做到这一点,假设我做对了,是否有一种同步方法用于确保我只从表面获取完整的缓冲区(即,没有撕裂)?