使用帧缓冲的两个应用程序
Posted
技术标签:
【中文标题】使用帧缓冲的两个应用程序【英文标题】:Two applications using framebuffer 【发布时间】:2012-12-20 17:10:14 【问题描述】:我正在为嵌入式硬件编写一组 Linux 帧缓冲应用程序。主应用程序在 /etc/inittab 的 tty1 上运行(现在它只是一个触摸屏测试)并且应该永久运行。当按下电源按钮时,第二个应用程序从 acpid 执行,它应该询问用户是否真的要关闭设备,并从触摸屏读取用户答案。我想要的是第二个应用程序在运行时会接管帧缓冲区,然后释放它并恢复屏幕状态,这样主应用程序就可以继续运行而无需重新启动。
这种情况是否可能与 2 个不同的应用程序一起使用,它们应该如何交互?现在,第二个应用程序在主应用程序运行时无法绘制任何内容。
我知道我可以杀死并重新启动主应用程序,或者将关机通知移至主应用程序并让 acpid 向其发送信号,但这些解决方案似乎不是最佳的。
【问题讨论】:
【参考方案1】:一种解决方案当然是拥有三个应用程序,一个执行实际的帧缓冲区交互,另外两个只是发送消息(以某种形式,例如通过管道、套接字或类似的形式)。这就是“窗口管理器”和类似的通常工作方式(但当然要复杂得多)
【讨论】:
这是一个不错的方法,但是需要开发一些交换协议,而且这样的协议可能会在一段时间后变得相当复杂。以上是关于使用帧缓冲的两个应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 QOpenGLFramebufferObject 对两个透明帧缓冲区对象进行 blit?