Qt 嵌入式如何与 Linux 帧缓冲驱动程序一起工作?
我认为直接写入 /dev/fb0 会导致图像闪烁。使用双缓冲区可以解决闪烁问题,但是,将数据从 Qt 缓冲区复制到帧缓冲区内存的策略是什么?按时间间隔然后将整个缓冲区复制到 /dev/fb0 或其他什么?而且,由于数据量很大,如何复制?通过启用 DMA 的 copy_from_user 或其他方式?
Qt 嵌入式如何与 Linux 帧缓冲驱动程序一起工作?
我认为直接写入 /dev/fb0 会导致图像闪烁。使用双缓冲区可以解决闪烁问题,但是,将数据从 Qt 缓冲区复制到帧缓冲区内存的策略是什么?按时间间隔然后将整个缓冲区复制到 /dev/fb0 或其他什么?而且,由于数据量很大,如何复制?通过启用 DMA 的 copy_from_user 或其他方式?
您应该避免使用 Qt 4 及其有缺陷的 QWS 设计。我建议使用 Qt 5,并对此感兴趣。
至于 Qt 5,它依赖于平台集成插件。我假设您的意思是这种情况下的“linuxfb”插件是与您描述的最接近的选项。
在那种特殊情况下,实际上没有应用乒乓缓冲区。它使用直接复制的 QImage 。该插件本质上是使用默认的QBackingStore。