我正在为嵌入式linux / MIPS设备开发Qt应用程序。到目前为止设法在设备上执行我的Qt应用程序。现在我需要在视频上创建叠加层。 硬件提供四个叠加窗口,不支持OpenGL。
到目前为止尝试过:
QStackedLayout
和QGraphicsView
,以便在视频之上创建叠加层。但是叠加层显示为黑色,但叠加层上的小部件会响应用户点击。./<appname> -display directfb:/dev/fb1:2
在嵌入式设备上执行它。但它无法打开 / dev / fb1 。问题:
需要紧急帮助。
答案 0 :(得分:1)
终于搞定了。我可以找到用于访问framebuffers的接口。
答案 1 :(得分:0)
在尝试使用Qt之前,您必须了解Linux内核如何支持硬件覆盖,以及内核提供哪些用户空间接口来使用这些覆盖。通常,只有一个叠加层可作为帧缓冲区访问,视频的其他叠加层可作为Video4Linux输出设备访问。但这实际上取决于硬件是什么以及如何在这个硬件上完成Linux支持。
答案 2 :(得分:0)
我的答案实际上不是关于qt而是关于hw层。 如果您的硬件支持覆盖,那么这应该意味着directfb支持多个硬件层。您尝试使用fb1,fb2 ...失败,因为只有一个fb驱动程序并且它由directfb使用,您应该直接使用directfb而不是fb。 首先,我建议你检查hw是否真的支持额外的hw层(表面)而不仅仅是主要的,因为你可以编写简单的directfb应用程序设置this 回调,并在初始化directfb接口之后核心将使用它的功能作为参数调用每个呈现的hw图层(曲面)的回调。 无论如何我不记得,但我猜Qt总是使用主表面。